在应该支持websockets的OpenShift上,我使用下面的socket.io代码获得以下响应:
WebSocket握手时出错:意外响应代码: 502
在日志中,我可以看到以下内容:
警告: websocket连接无效
套接字然后返回到xhr轮询。我想我曾经让它起作用,但我不知道我改变了什么会破坏它。
或者,在最新的升级之后,openshift会停止支持websockets吗?
代码(node.js服务器,socket.io)
var server = require('http').createServer(self.app);
server.listen(self.port, self.ipaddress, function() {
console.log('%s: Node server started on %s:%d ...', Date(Date.now() ), self.ipaddress, self.port);
});
var io = require('socket.io').listen(server);
io.configure(function () {
io.set("polling duration", 120);
io.set("heartbeat timeout", 120);
io.set("close timeout", 120);
});
io.sockets.on('connection', function (socket) {
socket.on('message', function (data) {
socket.emit('message', data);
socket.broadcast.emit('message', data);
});
}); 客户代码:
<script>
var socket = io.connect('http://xy-app.rhcloud.com');
socket.on('message', function(data) {
$("#messages").prepend("<p>" + data.content + "</p>");
});
</script>发布于 2014-02-27 06:23:09
似乎您通过将这些配置属性设置为可能不知道的值,从而以错误的方式配置了服务器。你看过文件吗?你知道polling duration,heartbeat timeout和close timeout是什么吗?可能您给这些值分配了不正确的值。你可能会想要这样做,这样会奏效的:
io.configure(function () {
io.set("polling duration", 30);
io.set("heartbeat timeout", 120);
io.set("heartbeat interval", 25);
io.set("close timeout", 120);});
https://stackoverflow.com/questions/22053339
复制相似问题