Javascript 通过WebSocket传输文本的正确方式是什么?

Javascript 通过WebSocket传输文本的正确方式是什么?,javascript,sockets,google-chrome,text,websocket,Javascript,Sockets,Google Chrome,Text,Websocket,我正在使用WebSockets开发一个Web应用程序,因此在某个时候我需要向Web浏览器发送一个文本文件(本例中是chrome),但chrome只是调用OneRor,而没有告诉我出了什么问题。如果我使用FireFox,它只是说有一个错误,但再一次,它没有给我真正的线索 起初,我认为我在服务器端做了一些错误的事情,直到我想:如果我仔细检查操作码并告诉套接字我正在发送二进制数据,我就这样做了,正如我想象的那样,没有发生错误,chrome得到了文件,一切都很好,只是我不知道如何使用JavaScript

我正在使用WebSockets开发一个Web应用程序,因此在某个时候我需要向Web浏览器发送一个文本文件(本例中是chrome),但chrome只是调用OneRor,而没有告诉我出了什么问题。如果我使用FireFox,它只是说有一个错误,但再一次,它没有给我真正的线索

起初,我认为我在服务器端做了一些错误的事情,直到我想:如果我仔细检查操作码并告诉套接字我正在发送二进制数据,我就这样做了,正如我想象的那样,没有发生错误,chrome得到了文件,一切都很好,只是我不知道如何使用JavaScript将二进制数据转换为文本。这让我编写了一个函数,对文本进行编码,编码后的版本不包含特殊字符,同样,也不包含错误。。。所以这显然是文本本身的问题


目前,我唯一能解决问题的方法是对文本进行编码和解码,但我不太确定这是正确的方法。所以我想知道:有更好的方法吗?

首先,您不需要在浏览器中解码帧。它已经在解码二进制消息(标准websocket格式)

我刚刚向github提交了一个可运行的最小websocket服务器。你可以试一试。


如果您想自己实现,则需要对帧进行解码和编码。

Solved!,我再次阅读了rfc6455,意识到在将文本发送到客户端之前,我需要对文本进行UTF-8编码。希望这能帮助其他人。你能用解决方案和你有价值的发现来回答你自己的问题,以便其他人能得到帮助吗?