socket io连接在localhost中正常工作,但在heroku服务器上部署时却没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket io连接在localhost中正常工作,但在heroku服务器上部署时却没有相关的知识,希望对你有一定的参考价值。

当我在localhost上运行我的代码时,它工作正常,但在heroku上部署后显示错误(GET错误)这是我的代码

服务器端代码

app = express()
app.listen(app.get('port'), function() {
  console.log('Node app is running on port..', app.get('port'));
});
var server = app.listen(4200);
var io = require('socket.io')(server);
io.on('connect',(socket)=>{
    console.log('connected..........');
})

客户端代码

private socket = io('My-Heroku-server-address:4200');

错误

 https:My-Heroku-server-address:4200/socket.io/?EIO=3&transport=polling&t=MDpJszb
答案

而不是像private socket = io('My-Heroku-server-address:4200');那样在客户端代码中指定要连接的URL

var socket = io();

这将尝试连接到为页面提供服务的主机。

有关更多信息,请参阅Socket.IO

另一答案

谢谢大家。

问题已经解决了。

我刚删除了端口号。

    private socket = io('My-Heroku-server-address');

谢谢大家

以上是关于socket io连接在localhost中正常工作,但在heroku服务器上部署时却没有的主要内容,如果未能解决你的问题,请参考以下文章

在真实的服务器中运行socket.io服务器,而不是localhost?

Socket.io 无法在 ReactJS 应用程序中连接

Socket.io 适用于 localhost 但不适用于 Heroku 服务器

socket.io 连接事件未在 Firefox 中触发

Socket.io 无法连接,求助于“轮询”

更改请求标头 SOCKET.IO(无需断开连接和重新连接)