我正在使用WebSockets开发一个Web应用程序,所以在某些时候我需要向Web浏览器(在这种情况下是chrome)发送一个文本文件,但是chrome只是调用onerror而没有给我任何关于什么是错误的线索。如果我使用FireFox浏览器,它只会告诉我有一个错误,但它也没有给我任何真正的提示。
起初我以为我在服务器端做错了什么,直到我想:如果我twweek操作码并告诉套接字我正在发送二进制数据,所以我做到了,正如我想象的那样没有发生错误,chrome得到了文件,一切都很好,除了没有办法我知道使用JavaScript将二进制数据转换为文本。这让我写了一个函数来对文本进行编码,这样编码后的版本就不包含特殊字符,也就不会出现错误……这显然是文本本身的问题。
目前我能够工作的唯一方法是通过编码和解码文本,但我不太确定这是正确的方法。所以我想知道:有没有更好的办法?
首先,您不需要在浏览器中解码帧。它已经解码二进制消息(标准websocket格式)。
我刚刚提交了一个工作最小的websocket服务器到github。你可以试试。SGwebsocket
如果你想自己实现,你将需要RFC6455参考解码和编码帧。