0
請幫助!我正在用Heroku製作Node/Express和React網站。 Server.js在客戶端提供expresshandlebar模板,呈現App.jsNodeJS,React on Heroku,Socket.io給出錯誤
到目前爲止,所有工作都在進行,直到我試圖實現Socket.IO。 Socket.IO完美的作品在本地主機,但給出了在Heroku上的錯誤:
VM63:35 WebSocket連接到 'WS:// mysite的:8080/socket.io客戶端/ EIO = 3 &運輸= WebSocket的' 失敗:網頁套接字握手期間錯誤:淨:: 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: '/socket.io-client'
transports: ['websocket']
2)按照Heroku的建議試試WebSockets。這會引發另一個錯誤'錯誤503'
Woah你是一個天才!這個竅門!沒有更多的錯誤,我的控制檯正在記錄服務器和客戶端發送的消息。現在,你能解釋這是如何工作的嗎? – user3577892
默認情況下,首先建立長輪詢連接,然後升級爲「更好」的傳輸(如WebSocket)。所以我們的配置會強制他們跳過使用長輪詢 – HuyTran