Node.js 在Heroku上托管时socket.io出现问题
我在将代码服务器上传到Heroku时遇到问题。没有套接字连接消息。 这是Heroku服务器端的代码Node.js 在Heroku上托管时socket.io出现问题,node.js,socket.io,Node.js,Socket.io,我在将代码服务器上传到Heroku时遇到问题。没有套接字连接消息。 这是Heroku服务器端的代码 var appS = require('express')(); var http = require('http').Server(appS); var io = require('socket.io')(http,{path: '/octagon/socket.io'}); http.listen(3000, function(){ console.log('listening on *:
var appS = require('express')();
var http = require('http').Server(appS);
var io = require('socket.io')(http,{path: '/octagon/socket.io'});
http.listen(3000, function(){
console.log('listening on *:3000');
});
io.sockets.on('connection', function (socket) {
socket.on('test',function (message) {
console.log(message)
})
})
这是客户端的代码
var socket = io.connect('https://murmuring-waters-83521.herokuapp.com/',
{
reconnect: true,
transports : ['websocket'],
ressources: '/octagon/socket.io'
});
我仍然收到这个信息
WebSocket connection to 'wss://murmuring-waters-83521.herokuapp.com/octagon/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 503
您可以通过更新客户端配置来实现这一点
var socket = io('//murmuring-waters-83521.herokuapp.com',
{
reconnect: true,
rejectUnauthorized: false, // new
path: '/octagon/socket.io' // use this instead of `ressources`
});
socket.on('connection', function () {
alert('Browser is connected to server!');
});
这里正在进行的讨论,有兴趣的人,请加入:)是否有需要调整socket.io客户端服务路径的原因?我删除了服务器和客户机上的
/octagon/socket.io
-在客户机上添加了拒绝未经授权的:false
选项&它正在工作。您还可以省略transports:['websocket'],
,因为它将自动升级到websocket
,如果它可用,这样您就可以支持更多正在工作的DeviceSample站点。没有理由调整socket.io的路径。我在一个论坛上看到了这一点,并试图实现iti发布了一个答案。你能试一下吗?评论不是用来进行长时间讨论的;这段对话已经结束。谢谢@Theo这段代码对我有用