Կառուցեք իրական ժամանակի զրույցի հավելված Python-ի և WebSocket տեխնոլոգիայի միջոցով
Իրական ժամանակում զրույցի հավելվածները դարձել են մեր թվային կյանքի անբաժանելի մասը՝ հեղափոխելով ուրիշների հետ մեր հաղորդակցության և համագործակցության ձևը: Անկախ նրանից, թե դա կապված է ընկերների և ընտանիքի հետ, համագործակցում է գործընկերների հետ նախագծում, կամ հաճախորդների հետ շփումը վեբկայքում, իրական ժամանակի զրույցն ապահովում է ակնթարթային և անխափան հաղորդակցություն, որը բարելավում է օգտվողի փորձը:
Այս ձեռնարկում մենք կսուզվենք իրական ժամանակի զրույցի հավելվածների աշխարհ և կուսումնասիրենք, թե ինչպես կարելի է ստեղծել այն՝ օգտագործելով Python և WebSocket տեխնոլոգիաները:
WebSocket-ը հաղորդակցման արձանագրություն է, որը հնարավորություն է տալիս լրիվ դուպլեքս կապի ալիքներ մեկ TCP կապի միջոցով: Այն առաջարկում է արդյունավետ և թեթև լուծում իրական ժամանակի հավելվածների համար՝ թույլ տալով շարունակական երկկողմանի հաղորդակցություն սերվերի և հաճախորդների միջև: Օգտագործելով WebSocket տեխնոլոգիան՝ մենք կարող ենք ստեղծել զրույցի հավելված, որն ակնթարթորեն փոխանցում է հաղորդագրությունները և ապահովում է պատասխանող և ինտերակտիվ ինտերֆեյս:
Python ծրագրավորման լեզուն առաջարկում է գրադարանների և շրջանակների լայն տեսականի վեբ մշակման համար՝ դարձնելով այն հիանալի ընտրություն իրական ժամանակում չաթի հավելվածներ ստեղծելու համար: Նման գրադարաններից մեկը «websockets»-ն է, որն ապահովում է Python հավելվածներում WebSocket-ի գործառույթն իրականացնելու պարզ և հարմար միջոց:
Այս ձեռնարկի միջոցով դուք կարող եք անցնել իրական ժամանակի զրույցի հավելված կառուցելու գործընթացին, օգտագործելով Python և WebSocket տեխնոլոգիաները: Մենք կանդրադառնանք անհրաժեշտ գրադարանի տեղադրմանը, WebSocket սերվերի տեղադրմանը, WebSocket հաճախորդի ստեղծմանը և նրանց միջև հաղորդակցության ցուցադրմանը:
Այս ձեռնարկի ավարտին դուք լավ կհասկանաք, թե ինչպես օգտագործել WebSocket տեխնոլոգիան՝ զարգացնելու ձեր սեփական իրական ժամանակի զրույցի հավելվածը: Անկախ նրանից՝ դուք սկսնակ եք, թե փորձառու Python-ի ծրագրավորող, այս ձեռնարկը կծառայի որպես գործնական ուղեցույց՝ իրական ժամանակում հաղորդակցման հավելվածներ ստեղծելու ճանապարհին սկսելու համար:
Այսպիսով, եկեք ուսումնասիրենք WebSocket տեխնոլոգիան և ստեղծենք իրական ժամանակի զրույցի ծրագիր, որը կբարձրացնի ուրիշների հետ կապվելու, համագործակցելու և իրական ժամանակում շփվելու ձեր ունակությունը:
Սկսել
Նախքան կոդի մեջ մտնելը, մենք պետք է տեղադրենք WebSockets գրադարանը: Դա կարելի է անել՝ օգտագործելով pip փաթեթի կառավարիչը: Այս մոդուլը նախապես փաթեթավորված չէ Python-ով: Այսպիսով, մենք այն կներբեռնենք և կտեղադրենք՝ օգտագործելով pip փաթեթի կառավարիչը:
Բացեք ձեր տերմինալը կամ հրամանի տողը և գործարկեք հետևյալ հրամանը՝ գրադարանը pip-ի միջոցով տեղադրելու համար
pip install websockets
Գրադարանի հաջող տեղադրմամբ մենք կարող ենք շարունակել իրական ժամանակում զրույցի մեր հավելվածի կառուցումը:
Քայլ 1. WebSocket սերվերի կարգավորում
Սկսելու համար եկեք կարգավորենք WebSocket սերվերը՝ օգտագործելով WebSockets գրադարանը: Բացեք ձեր նախընտրած Python ինտեգրված զարգացման միջավայրը (IDE) կամ տեքստային խմբագրիչը, որպեսզի սկսեք գրել կոդը: Ներմուծեք անհրաժեշտ մոդուլները՝ սկզբում ավելացնելով կոդի հետևյալ տողերը −
import asyncio
import websockets
Asyncio մոդուլը տրամադրում է ենթակառուցվածք Python-ում ասինխրոն կոդ գրելու համար, մինչդեռ websockets մոդուլը թույլ է տալիս մեզ ստեղծել WebSocket սերվերներ և հաճախորդներ։
Հաջորդը, սահմանեք ասինխրոն ֆունկցիա՝ մուտքային WebSocket կապերը կարգավորելու համար
async def handle_connection(websocket, path):
# Code to handle incoming connections
Այս կոդի հատվածում մենք սահմանում ենք asynchronous ֆունկցիա handle_message անունով, որն ընդունում է երկու պարամետր՝ websocket և path: Websocket պարամետրը ներկայացնում է WebSocket կապը, իսկ ուղու պարամետրը ներկայացնում է կապի URL ուղին: Handle_connection ֆունկցիայի ներսում մենք կարող ենք տրամաբանություն ավելացնել WebSocket-ի տարբեր իրադարձություններ վարելու համար, ինչպիսիք են հաղորդագրություններ ստանալը, հաղորդագրություններ ուղարկելը և կապերը փակելը:
Օրինակ, մենք կարող ենք ներդնել հիմնական չաթի սերվեր, որը հեռարձակում է հաղորդագրություններ բոլոր միացված հաճախորդներին −
async def handle_connection(websocket, path):
# Add the websocket to a list of connected clients
connected_clients.append(websocket)
try:
while True:
# Receive a message from the client
message = await websocket.recv()
# Broadcast the message to all connected clients
for client in connected_clients:
await client.send(message)
finally:
# Remove the websocket from the list of connected clients
connected_clients.remove(websocket)
Քայլ 2. WebSocket Client-ի կարգավորում
Հաջորդը, եկեք կարգավորենք WebSocket հաճախորդը սերվերի հետ կապ հաստատելու և հաղորդագրություններ ուղարկելու/ստանալու համար: Ստեղծեք մեկ այլ Python ֆայլ և ներմուծեք անհրաժեշտ մոդուլները −
Սահմանեք ասինխրոն ֆունկցիա՝ հաճախորդի WebSocket կապը կարգավորելու համար
Connect_to_server ֆունկցիայի ներսում մենք կարող ենք տրամաբանություն ավելացնել սերվերից հաղորդագրություններ ուղարկելու և ստանալու համար: Օրինակ, մենք կարող ենք իրականացնել հիմնական չաթի հաճախորդ, որը թույլ է տալիս օգտվողին ուղարկել հաղորդագրություններ -
async def connect_to_server():
async with websockets.connect('ws://localhost:8000') as websocket:
while True:
# Get user input
message = input("Enter message: ")
# Send the message to the server
await websocket.send(message)
# Receive a message from the server
response = await websocket.recv()
# Print the received message
print("Received:", response)
Քայլ 3. WebSocket սերվերի և հաճախորդի գործարկում
WebSocket սերվեր -
import asyncio
import websockets
connected_clients = []
async def handle_connection(websocket, path):
# Add the websocket to a list of connected clients
connected_clients.append(websocket)
try:
while True:
# Receive a message from the client
message = await websocket.recv()
# Broadcast the message to all connected clients
for client in connected_clients:
await client.send(message)
finally:
# Remove the websocket from the list of connected clients
connected_clients.remove(websocket)
# Start the WebSocket server
start_server = websockets.serve(handle_connection, 'localhost', 8000)
# Run the server indefinitely
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Սերվերը գործարկվում է՝ գործարկելով իրադարձությունների հանգույցը: Run_until_complete մեթոդը կանչվում է իրադարձությունների հանգույցի վրա՝ անցնելով start_server օբյեկտում, որը ներկայացնում է WebSocket սերվերը։ Սա ապահովում է, որ սերվերը կարգավորված է և պատրաստ է ընդունել կապեր: Սերվերը անորոշ ժամանակով աշխատելու համար, run_forever մեթոդը կանչվում է իրադարձությունների հանգույցում: Սա թույլ է տալիս սերվերին շարունակել լսել մուտքային կապերը և մշակել հաղորդագրությունները, երբ դրանք հասնում են: Կոդը գործարկելով՝ դուք կունենաք WebSocket սերվեր, որը պատրաստ է կարգավորել կապերը և հեշտացնել իրական ժամանակի հաղորդակցությունը հաճախորդների միջև:
WebSocket Client -
import asyncio
import websockets
async def connect_to_server():
async with websockets.connect('ws://localhost:8000') as websocket:
while True:
# Get user input
message = input("Enter message: ")
# Send the message to the server
await websocket.send(message)
# Receive a message from the server
response = await websocket.recv()
# Print the received message
print("Received:", response)
# Connect the WebSocket client
asyncio.get_event_loop().run_until_complete(connect_to_server())
Եզրակացություն
Այս ձեռնարկում մենք ուսումնասիրեցինք, թե ինչպես կարելի է իրական ժամանակում զրույցի հավելված ստեղծել՝ օգտագործելով Python և WebSocket տեխնոլոգիաները: Մենք սկսեցինք ներկայացնելով WebSocket արձանագրությունը և դրա առավելությունները իրական ժամանակի հաղորդակցության համար: Մենք օգտագործեցինք WebSockets գրադարանը WebSocket սերվեր ստեղծելու համար, որը կարող է կառավարել մուտքային կապերը և հեռարձակել հաղորդագրությունները բոլոր միացված հաճախորդներին: Բացի այդ, մենք կառուցել ենք WebSocket հաճախորդ, որը կարող է միանալ սերվերին, ուղարկել հաղորդագրություններ և ստանալ պատասխաններ:
WebSocket սերվերը և հաճախորդը կարգավորելուց հետո մենք ներդրեցինք չաթի հավելվածի հիմնական գործառույթը: Սա ներառում էր հաճախորդի և սերվերի միջև կապ հաստատելը, մուտքային հաղորդագրությունների մշակումը և հաղորդագրությունների հեռարձակումը բոլոր միացված հաճախորդներին:
Հետևելով տրված կոդերի օրինակներին և բացատրություններին, դուք պետք է կարողանաք իրական ժամանակում ստեղծել զրույցի ծրագիր՝ օգտագործելով Python և WebSocket տեխնոլոգիաները: Դուք կարող եք լրացուցիչ ընդլայնել այս հավելվածը՝ ավելացնելով այնպիսի գործառույթներ, ինչպիսիք են օգտատիրոջ նույնականացումը, անձնական հաղորդագրությունների փոխանակումը կամ հաղորդագրությունների կայունությունը:
Դուք կարող եք ուսումնասիրել «websockets» գրադարանի և WebSocket արձանագրության պաշտոնական փաստաթղթերը՝ ձեր գիտելիքները խորացնելու և առաջադեմ առանձնահատկությունները ուսումնասիրելու համար: Բացի այդ, մի հապաղեք փորձարկել և հարմարեցնել կոդը՝ ձեր հատուկ պահանջներին և դիզայնի նախասիրություններին համապատասխան:
WebSocket տեխնոլոգիան ապահովում է հզոր և արդյունավետ միջոց իրական ժամանակում հաղորդակցության իրականացման համար տարբեր հավելվածներում, ներառյալ չաթի հավելվածները, համագործակցային գործիքները, իրական ժամանակի ծանուցումները և բազմախաղացող խաղերը: Հետևելով այս ձեռնարկում նկարագրված քայլերին, դուք կարող եք ստեղծել ձեր սեփական իրական ժամանակի զրույցի հավելվածը և ուսումնասիրել WebSocket տեխնոլոգիայի հնարավորությունները ձեր նախագծերում:
Այս ձեռնարկից ձեռք բերված գիտելիքներով դուք այժմ լավ պատրաստված եք Python և WebSocket տեխնոլոգիաների միջոցով իրական ժամանակում չաթի հավելվածներ ստեղծելու ձեր ճամփորդությունը սկսելու համար: Ուրախ կոդավորում: