NodeJS,React Heroku,Socket.io给出错误 [英] NodeJS, React on Heroku, Socket.io gives error
问题描述
帮助!我在Heroku上使用Node / Express和React制作网站。
Server.js在客户端提供一个expresshandlebar模板,呈现App.js
到目前为止,所有工作都在进行,直到我试图实现Socket.IO。 Socket.IO在localhost上完美工作,但在Heroku上出现错误:
VM63:35与'ws:// mysite:8080 / socket.io的WebSocket连接-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。这会抛出另一个错误'error 503'。解决方案
this.io = socket.connect( yourpath,{
transports:['websocket'],
upgrade:false,
});
首先,您需要连接到确切的套接字服务器。你可以尝试上面的代码,我将它用于我的项目
Help pls! I am making a website with Node/Express and React on Heroku. Server.js serves an expresshandlebar template on client side, rendering App.js
So far everything was working, until I tried to implement Socket.IO. Socket.IO works perfectly on localhost but gives an error on Heroku:
VM63:35 WebSocket connection to 'ws://mysite:8080/socket.io-client/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
Here is the relevant portion of the code:
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();
I have read many sites, and tried many alternatives, such as: 1) setting on both client and server socket.io 'path' and 'transports'
path: '/socket.io-client'
transports: ['websocket']
2) Trying WebSockets as recommended by Heroku. This throws another error 'error 503'
this.io = socket.connect(yourpath, {
transports: ['websocket'],
upgrade: false,
});
First, you need to connect to exactly socket server. Could you try above code, I'm using that for my project
这篇关于NodeJS,React Heroku,Socket.io给出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!