【发布时间】:2014-02-26 16:28:29
【问题描述】:
我遇到了奇怪的 websocket 问题:
node.js 中的服务器:
var websocket = require('websocket');
var http = require('http');
var transportServer = http.createServer(function(request, response) {});
var wsServer = new websocket.server({ httpServer: transportServer });
wsServer.on('request',function(request) {
var connection = request.accept(null,request.origin);
console.log('connected');
connection.on('message',function(message) {
console.log('message received');
});
connection.on('close',function(){
console.error('connection closed');
process.exit(0);
});
});
transportServer.listen(5000);
浏览器中的客户端:
var ws = new ReconnectingWebSocket 'ws://localhost:5000'
ws.onopen = function(){
var buf = '';
for(var i = 1; i <= 65536; ++i) buf = buf + 'a';
ws.send(buf);
}
上面的示例有效,但是如果我将 for 循环中的 65536 更改为 65537 它将失败 - 服务器不会打印“收到的消息”而是打印“连接关闭”,并且服务器或客户端上不会报告任何错误。 WebSocket 有最大消息长度吗?
【问题讨论】: