node.js - 在 Heroku 上托管时出现 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 *: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!');
  });

关于node.js - 在 Heroku 上托管时出现 socket.io 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51814018/

相关文章:

Node.js MongoDb - 随机获取 n 个文档

html - 如何使用 Jade 设置没有空格的 textarea 元素的文本?

node.js - 如何使用connection.db.collection函数?

node.js - 无法从 Angular 调用 Express Rest api

logging - Socket.io 启动输出杀死 node.js 守护进程的 Upstart 脚本

node.js - Socket.io 客户端重新连接不起作用

javascript - 断开 sails.js socket.io 的逻辑

node.js - typescript - 导入模块 - 找不到模块

laravel - 我在浏览器端需要什么 URI 才能从 heroku 的 redis 插件连接到 amazon redis 服务器

mysql - node.js + socket.io 聊天应用