这篇文章写一下python如何使用websocket通信,包括server和client部分。
Websocket Server
尝试了一下:https://github.com/aaugustin/websockets ,git上star最多的,但是个人用着不是很舒服,大家有兴趣可以看看。
后面用了一下:https://github.com/dpallot/simple-websocket-server, 感觉还行,搭个简单的server到是很简单。
官方的例子比较简单:
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
class SimpleEcho(WebSocket):
def handleMessage(self):
# echo message back to client
self.sendMessage(self.data)
def handleConnected(self):
print(self.address, 'connected')
def handleClose(self):
print(self.address, 'closed')
server = SimpleWebSocketServer('', 8000, SimpleEcho)
server.serveforever()
加了一些其他操作,把原来封装的server扔到一个线程里去操作,加了个自己的主循环代码,使得功能更丰富一些:
# coding: utf-8
import os
import sys
import time
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
import queue
import threading
class WSServerInstance(WebSocket):
def handleMessage(self):
# 这里的server就是绑定的WSServer里的server
self.server.data_queue.put(self.data)
def handleConnected(self):
print(self.address, "connected")
def handleClose(self)