0
我有一个Vagrant框设置为从内部端口5000到外部端口8081端口转发socket.io应用程序;当我尝试从客户端连接时,它开始长时间轮询连接,但是我没有看到来自服务器的任何响应,并且服务器应用程序从未注册过连接尝试。连接不会失败或返回任何错误响应代码,但它只是返回空白响应的200代码。Socket.io和Vagrant无法建立websocket连接
// Import utilities
var http = require('http'),
socketIO = require('socket.io'),
querystring = require('querystring');
// Init servers/external connections
var server = http.createServer(function baseHandler(req, res) {
// console.log(req.headers);
res.writeHead(200);
res.end(JSON.stringify({
message: 'This server only supports WebSocket connections'
}));
}),
io = socketIO(server);
server.listen(process.env.socket_port || 5000, function() {
var sockets = [];
console.log('App connected');
});
io.on('connection', function (socket) {
console.log('Socket connected');
console.log('Socket in rooms '+ socket.rooms.join(', '));
});
相同的应用程序的工作原理,当我试图从直接我的电脑上运行的应用程序连接起来,所以我的代码似乎并没有在这里是问题就好了,尤其是考虑到它是如何基本上复制的基本在文档中的示例;不确定如何从这里解决这个问题。
你打开了TCP端口转发而不是http? Web套接字使用TCP而不是HTTP。 –
@JeffSloyer Vagrant转发的端口默认为TCP,HTTP协议甚至不涉及到Vagrant的网络设置IIRC。 – moberemk
你可以尝试在你的流浪vm上做一个本地请求,以确保事情正常工作吗? –