برنامه نویسی

WebSockets in Python: شیرجه عمیق برای برنامه های زمان واقعی

آشنایی با Socket.io در پایتون

در چشم انداز پویا توسعه وب ، ارتباطات در زمان واقعی به یک جنبه مهم در ایجاد تجربیات جذاب کاربر تبدیل شده است. Socket.io ، یک کتابخانه قوی JavaScript ، نقش مهمی در فعال کردن ارتباطات دو طرفه در زمان واقعی بین مشتری و سرورها دارد. هنگامی که با Python ، یک زبان برنامه نویسی همه کاره و قدرتمند جفت می شود ، توسعه دهندگان می توانند از Socket.io استفاده کنند تا برنامه های کاربردی و تعاملی در زمان واقعی ایجاد کنند.

Socket.io چیست؟

Socket.io یک کتابخانه قدرتمند است که ارتباطات دو طرفه بین مشتری و سرورها را از طریق وب امکان پذیر می کند. این فناوری WebSocket را چکیده و ویژگی های دیگری مانند اتصال مجدد اتوماتیک ، پخش رویداد و چند برابر را ارائه می دهد. بر خلاف ارتباطات HTTP سنتی ، Socket.io یک ارتباط مداوم را حفظ می کند و آن را برای برنامه هایی که نیاز به تبادل داده کم و در زمان واقعی دارند ، ایده آل می کند. تطبیق پذیری آن و سهولت استفاده ، آن را به یک انتخاب محبوب در بین توسعه دهندگان برای ساخت برنامه های گپ ، اعلان های زنده ، ابزارهای مشترک و موارد دیگر تبدیل کرده است.

چرا از Socket.io با پایتون استفاده می کنیم؟

استفاده از Socket.io با پایتون بهترین های هر دو جهان را ترکیب می کند: قابلیت های زمان واقعی پایتون و Socket.io. پشتیبانی گسترده کتابخانه و سهولت استفاده از کتابخانه پایتون ، آن را به یک انتخاب عالی برای توسعه پس زمینه برنامه های کاربردی در زمان واقعی تبدیل می کند. از طرف دیگر ، Socket.io یک API ساده برای رسیدگی به رویدادهای در زمان واقعی ، اطمینان از برقراری ارتباط یکپارچه بین مشتری و سرور فراهم می کند. موارد استفاده مشترک شامل برنامه های گپ زنده ، ابزارهای همکاری در زمان واقعی ، سیستم عامل های بازی تعاملی و داشبوردهای تجزیه و تحلیل در زمان واقعی است. ادغام Python با Socket.io به توسعه دهندگان این امکان را می دهد تا به سرعت نمونه اولیه و کاربردهای قوی در زمان واقعی را بسازند و از قابلیت های ناهمزمان پایتون برای عملکرد پیشرفته استفاده کنند.

شروع با Socket.io در پایتون

قبل از غواصی در Socket.io ، اطمینان حاصل کنید که پایتون را روی دستگاه خود نصب کرده اید. شما هم نیاز دارید flask وت python-socketio کتابخانه ها این بسته ها را با استفاده از PIP نصب کنید:

“ `sh title =” sh “
PIP Flask Python-Socketio را نصب کنید




With these prerequisites in place, you can set up a basic Socket.IO server and client in Python. The following sections will guide you through the process step-by-step, providing code snippets and explanations to help you understand and implement real-time communication features in your application.

### Setting Up a Basic Socket.IO Server
To set up a basic Socket.IO server, start by creating a simple Flask application and integrating Socket.IO. Here’s how:



```python title="Python"
import socketio
from flask import Flask

app = Flask(__name__)
sio = socketio.Server()
app.wsgi_app = socketio.WSGIApp(sio, app.wsgi_app)

@app.route("https://dev.to/")
def index():
    return "Socket.IO server is running!"

@sio.event
def connect(sid, environ):
    print('Client connected:', sid)

@sio.event
def disconnect(sid):
    print('Client disconnected:', sid)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این کد یک برنامه اصلی Flask را با Socket.io یکپارچه تنظیم می کند. این اتصالات مشتری و قطع ارتباط را انجام می دهد و این رویدادها را به کنسول وارد می کند.

ایجاد مشتری برای اتصال به سرور

در مرحله بعد ، مشتری ایجاد کنید که به سرور Socket.io شما متصل شود. در اینجا یک مثال ساده با استفاده از python-socketio کتابخانه:

“ `عنوان پایتون =” پایتون “
واردات سوکتو

sio = socketio.client ()

@sio.event
def Connect ():
چاپ (“اتصال ایجاد شده”)

@sio.event
DEF DESNONNECT ():
چاپ (“جدا از سرور”)

sio.connect ('http: // localhost: 5000')
sio.wait ()




This client script connects to the server at `http://localhost:5000` and logs connection and disconnection events. Run this script to establish a connection with your server.

### Emitting and Handling Events 

Socket.IO operates on events, allowing the server and clients to emit and listen for specific events. Here’s how to emit and handle events:

#### Server Side



```python title="Python"
@sio.event
def message(sid, data):
    print('Message received:', data)
    sio.emit('response', {'data': 'Message received'}, room=sid)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

طرف مشتری

“ `عنوان پایتون =” پایتون “
sio.emit (“پیام” ، {“داده”: “سلام ، سرور!”})

@sio.event
پاسخ def (داده ها):
چاپ (“پاسخ از سرور:” ، داده ها)




In this example, the server listens for a `message` event and emits a `response` event back to the client.

### Broadcasting Messages

Broadcasting messages to all connected clients is straightforward with Socket.IO. Here’s an example:

#### Server Side



```python title="Python"
@sio.event
def broadcast_message(data):
    sio.emit('broadcast', {'data': data})
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

طرف مشتری

“ `عنوان پایتون =” پایتون “
@sio.on (“پخش”)
def on_broadcast (داده):
چاپ ('پیام پخش:' ، داده)




The server’s `broadcast_message` event sends a message to all connected clients, which listen for the `broadcast` event and handle the received data accordingly.
s
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا