1
在uWebSockets.js和Websocket-Sharp中使用websocket压缩
我们有一个使用websocket进行连接的手机游戏。服务器是使用uWebSockets.js库的Node.js应用程序,客户端是使用Websocket-Sharp库的Unity应用程序。他们俩在一起玩的很好,我们没有遇到任何问题。 最近,我们想启用websocket压缩。这两个库都声明它们支持按消息压缩扩展,但是似乎有些东西与它们不兼容。因为当我们配置为使用压缩时,Websocket连接在握手时立即关闭。 我们还使用ws库测试了客户端,并提供了具有相同结果的压缩示例。我们尝试修改ws压缩选项,发现在注释serverMaxWindowBits选项(默认为协商值)时,可以建立连接,发送和接收消息也可以正常工作。我们还询问了如何在uWebsockets中控制serverMaxWindowBits。 我们尝试的最后一件事是连接最小的uWS服务器和websocket-sharp客户端。这是服务器的代码: const uWS = require('uWebSockets.js'); const port = 5001; const app = uWS.App({ }).ws('/*', { /* Options */ compression: 1, // Setting shared compression method maxPayloadLength: 4 * 1024, idleTimeout: 1000, /* Handlers */ open: (ws, req) => { console.log('A WebSocket connected via URL: ' + req.getUrl() …