Pengaturcaraan websocket dalam Python

PHPz
Lepaskan: 2023-06-17 08:07:15
asal
5432 orang telah melayarinya

Dengan perkembangan pesat Internet, protokol Websocket juga digunakan secara meluas sebagai protokol komunikasi baharu. Sebagai bahasa pengaturcaraan biasa, Python mempunyai banyak perpustakaan Websocket yang sangat baik, seperti Tornado dan WebSocket-Server, yang menyediakan pembangun dengan sokongan yang baik.

Artikel ini akan memperkenalkan protokol Websocket dan perbezaannya daripada protokol HTTP, serta langkah-langkah dan kaedah pelaksanaan membangunkan aplikasi Websocket menggunakan Python.

1. Pengenalan kepada protokol Websocket

Protokol websocket ialah protokol komunikasi dupleks penuh yang berjalan di atas protokol TCP. Protokol ini menyediakan sambungan berterusan, membolehkan penghantaran data dua hala masa nyata antara pelanggan dan pelayan, dan boleh digunakan dalam komunikasi masa nyata, permainan dalam talian dan senario lain.

Ciri-ciri protokol Websocket adalah seperti berikut:

(1) Semua penghantaran data adalah berdasarkan bingkai.

(2) Protokol Websocket menggunakan protokol HTTP semasa fasa jabat tangan.

(3) Protokol Websocket menyediakan dua jenis bingkai: bingkai data dan bingkai kawalan. Bingkai data digunakan untuk menghantar mesej, dan bingkai kawalan digunakan untuk mengekalkan status sambungan.

(4) Protokol Websocket menyediakan mekanisme degupan jantung untuk mengekalkan kestabilan sambungan.

(5) Protokol Websocket boleh berkomunikasi melalui SSL/TLS yang disulitkan dan kaedah tidak disulitkan.

2. Perbezaan antara protokol Websocket dan protokol HTTP

Protokol websocket dan protokol HTTP adalah kedua-dua protokol lapisan aplikasi, tetapi terdapat perbezaan utama berikut di antara mereka:

( 1) Websocket ialah sambungan berterusan, manakala HTTP ialah sambungan pendek.

(2) Protokol Websocket menggunakan protokol HTTP untuk komunikasi semasa fasa jabat tangan, tetapi fasa jabat tangan Websocket hanya perlu dilakukan sekali, dan kemudian komunikasi data masa nyata boleh dijalankan.

(3) Protokol Websocket menggunakan bingkai binari dan bingkai teks untuk penghantaran data, manakala protokol HTTP hanya boleh menghantar data teks.

(4) Protokol Websocket boleh melakukan penghantaran data dua hala, manakala protokol HTTP hanya boleh melakukan penghantaran data sehala.

3. Python melaksanakan aplikasi Websocket

Terdapat banyak perpustakaan Websocket dalam Python, antaranya Tornado dan WebSocket-Server adalah yang lebih biasa digunakan. Artikel ini akan mengambil WebSocket-Server sebagai contoh untuk memperkenalkan cara menggunakan Python untuk melaksanakan aplikasi Websocket.

  1. Pasang perpustakaan WebSocket-Server

Masukkan arahan berikut pada baris arahan untuk memasang pustaka WebSocket-Server:

rreee
  1. Tulis Kod pelayan

Untuk melaksanakan pelayan Websocket dalam Python, anda perlu mencipta objek WebsocketServer dahulu, dan kemudian melebihkan beberapa kaedah acaranya, seperti on_open(), on_message(), on_close (), dsb., untuk melengkapkan data Operasi seperti menyambung, menerima data dan menutup sambungan.

Kod khusus adalah seperti berikut:

pip install websocket-server
Salin selepas log masuk
  1. Jalankan pelayan Websocket

Masukkan arahan berikut dalam baris arahan untuk memulakan pelayan WebSocket:

from websocket_server import WebsocketServer

# 客户端连接时触发
def new_client(client, server):
    print("New client connected and was given id %d" % client["id"])
    server.send_message_to_all("Hey all, a new client has joined us")

# 接收到客户端消息时触发
def message_received(client, server, message):
    print("Client(%d) said: %s" % (client["id"], message))
    server.send_message_to_all("Client(%d) said: %s" % (client["id"], message))

# 客户端关闭连接时触发
def client_left(client, server):
    print("Client(%d) disconnected" % client["id"])

# 建立 WebSocketServer 对象,监听 9001 端口
server = WebsocketServer(9001)
server.set_fn_new_client(new_client)
server.set_fn_message_received(message_received)
server.set_fn_client_left(client_left)

# 启动服务器
server.run_forever()
Salin selepas log masuk
  1. Tulis kod klien

Untuk melaksanakan klien Websocket dalam Python, anda perlu mencipta objek WebSocketClient dan kemudian memanggil beberapa kaedahnya, seperti connect() , hantar(), tutup (), dsb., untuk melengkapkan sambungan, penghantaran data dan operasi penutupan.

Kod khusus adalah seperti berikut:

python server.py
Salin selepas log masuk

Di atas adalah langkah dan kaedah pelaksanaan pengaturcaraan Websocket dalam Python Dengan cara ini, aplikasi seperti komunikasi masa nyata dan permainan dalam talian boleh disedari. Sudah tentu, sebagai tambahan kepada perpustakaan WebSocket-Server, terdapat perpustakaan Websocket lain yang berbeza untuk dipilih, dan pembangun boleh memilih dan mencubanya mengikut keperluan mereka sendiri.

Atas ialah kandungan terperinci Pengaturcaraan websocket dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan