2013-01-10 70 views
1

因此,我爲了自己的目的在Python中製作一個WebSocket服務器,我需要從網絡接收數據。這一切都在一些jibberjabbish,任何人都可以幫我弄清楚它是什麼意思?Python WebSocket解碼消息

while True: 
    data = self.socket.recv(1024) 
    print bytes(data) 

這是我目前的代碼,雖然它只是返回一些奇怪的字符。你如何將它變成正常文本?我已經閱讀了其他主題,但答案沒有幫助(具體到他奇怪的PHP的東西),鏈接已經死了。

+0

誰在發送數據?客戶是由你寫的嗎? – ATOzTOA

+0

客戶端是使用Google Chrome進行測試的HTML頁面。 –

回答

1

如果你想實現的WebSocket服務器,你應該非常詳細地研究WebSocket RFC。特別是,您希望查看描述從客戶端到服務器的初始請求和服務器必須發送的響應的section 4,以及描述向客戶端發送或從客戶端發送的單個數據包的方式的section 5

+0

謝謝,這幫助我創建了一部分功能,並將其解碼爲可用信息。 –

0

在使用Base64編碼,所以默認的WebSockets:

import base64 
print base64.decodestring(message_from_socket) 
+0

這沒有奏效。 –

+0

和你使用什麼客戶端庫? SocketIO? – Denis

+0

我正在使用谷歌瀏覽器,但是我使用Screwtape的答案做了一個函數。 –

0

print bytes(data.decode())

也許這可能工作?對不起,我第一次在這裏回答。而且我知道我個人必須在發送數據之前編碼數據,然後在數據到達時對其進行解碼。

+0

啊,nvm可能是錯的,Denis很可能是對的。 – Micrified