NodeJS,React Heroku,Socket.io给出错误 [英] NodeJS, React on Heroku, Socket.io gives error

查看:235
本文介绍了NodeJS,React Heroku,Socket.io给出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

帮助!我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆