解码通过websocket发送的数据

时间:2011-12-03 14:34:20

标签: python html5 websocket

我正在尝试构建一个简单的Python Websocket服务器。我设法做了握手和所有的事情。但是,我无法弄清楚如何解码从浏览器收到的消息,这是服务器收到的原始输出:'xÙõKþ°pãüCY。我怎么解码那个?

2 个答案:

答案 0 :(得分:3)

WebSocket协议涉及framing protocol。浏览器不只是将原始应用程序字节发送到服务器(反之亦然)。您需要解析成帧协议以提取原始字节。

已经实现了许多库来为您执行此解析。您应该尝试使用其中之一。其中一个这样的库是http://pypi.python.org/pypi/txWS/0.6.1,但是如果你找不到合适的库,你可以找到其他人进行一些搜索。

答案 1 :(得分:0)

您从客户端发送的邮件是什么?你确定你使用的是Chrome 8(过时的7个版本)。如果您实际上使用的是最近的Chrome,那么您的问题很可能是您无法取消屏蔽有效负载。最新版协议(HyBi系列)中的所有客户端到服务器数据使用4字节运行的XOR掩码来保护破坏的中间人免受恶意Javascript的劫持。

有关客户端到服务器有效负载屏蔽的说明,请参阅section 5.3 of the spec

另外,请注意有效负载数据是UTF-8编码的(在旧协议中也是如此),您不能将其视为ASCII字符串。