NodeJS,Heroku上的React,Socket.io给出了错误

时间:2017-07-07 01:58:49

标签: node.js reactjs heroku socket.io

帮助帮助我正在Heroku上创建一个Node / Express和React的网站。 Server.js在客户端提供expresshandhandlebar模板,呈现App.js

到目前为止,一切正常,直到我尝试实现Socket.IO。 Socket.IO在localhost上完美运行但在Heroku上出错:

VM63:35 WebSocket连接到'ws:// mysite:8080 / socket.io-client /?EIO = 3& transport = websocket'失败:WebSocket握手期间出错:net :: ERR_CONNECTION_RESET

以下是代码的相关部分:

Server.js

var express = require('express'),
var port = process.env.PORT || 8080;
var httpServer = require('http').createServer(app);
httpServer.listen(port)
io.on('connection', function (socket) {
console.log('Connection started');});

App.js

var io = require('socket.io-client');
var new_socket = io.connect();

我已经阅读了很多网站,并尝试了很多替代方案,例如: 1)在客户端和服务器socket.io'path'和'transports'

上设置
path: '/socket.io-client'
transports: ['websocket']

2)按照Heroku的推荐尝试WebSockets。这会引发另一个错误'错误503'

1 个答案:

答案 0 :(得分:0)

this.io = socket.connect(yourpath, {
  transports: ['websocket'],
  upgrade: false,
});

首先,您需要连接到完全套接字服务器。你可以试试上面的代码吗,我将它用于我的项目