我學習蟒蛇的時刻和選擇的WebSocket服務器作爲一個學習項目方面,這可能是不是一個明智的決定閱讀的WebSocket RFC後...Python3基於WebSocket的服務器,客戶端關閉發送上
握手和接收單框架軟件包正在工作,但將數據發送回客戶端不是。 我使用Firefox和Chromium作爲客戶端進行測試。從服務器接收數據時
兩種瀏覽器將要取消的連接,這是Chromiums錯誤消息:
WebSocket connection to 'ws://localhost:1337/' failed: Unrecognized frame opcode: 13
的createFrame函數應幀消息文本中,發送到客戶端。
def createFrame (text):
length = len(text)
if length <= 125:
ret = bytearray([129, length])
for byte in text.encode("utf-8"):
ret.append(byte)
print(ret)
return ret
#TODO 16 & 64Bit payload length
這在createFrame調試輸出,它看起來很好,如果我明白了RFC,翅片和UTF8位被設置時,長度爲5:
bytearray(b'\x81\x05Hello')
這是原始發送和接收循環:
while 1:
data = conn.recv(1024) #TODO Multiple frames
if len(data) > 0:
print(readFrame(data))
conn.send(createFrame("Hello"))
整個代碼可以在這個要點中找到:https://gist.github.com/Cacodaimon/33ff6c3c4b312b074c3e
\ x81 \ x05您好似是根據工作實施發送的正確信息 –