0

我一直在测试Caddy ServerWeb Socket Daemon,看看从服务器环境支持 WebSocket 是多么容易。这两种解决方案都是使用您选择的命令行程序(以您选择的任何语言编写)的标准输入/输出的抽象。

但是,这两个程序都是基于行的。也就是说,如果您的命令行程序将单个“消息”写入包含换行符的标准输出,您的 JavaScript websocket 代码将看到两条不同的消息。

有没有办法避免这个问题?

编辑:作为非官方答案,您可以执行多种编码以避免换行问题。例如,如果您的命令行程序使用 JSON 编码的数据进行响应,您可以简单地对数据进行 base64 编码,然后再将其写入标准输出。然后,JavaScript 会atob()在对其进行 JSON 解码之前调用此数据。使用多种编码会增加一点点大小开销,但它确实避免了换行符的问题(以及其他非打印和控制字符的任何其他问题)。

4

0 回答 0