2017-12-27 77 views
0

이 내 라이브 Node.js를의에게 Heroku 응용 프로그램에서 웹 콘솔에 무엇입니까 오류 메시지입니다 : polling-xhr.js:264 GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=M2MDZUw net::ERR_CONNECTION_REFUSEDHeroku가 Node.js를 + Socket.io는 : Heroku가에 배포 한 후, 나는 얻을 ERR_CONNECTION_REFUSED

내가 실행 내 프로그램을 로컬로, 모든 문제없이 잘 작동합니다. 환경에있는 내용을 청취 할 서버를 나열했습니다. 아무 것도 없으면 PORT 포트 또는 3000 포트입니다. 다음은 내 관련 server.js 코드 및 package.json 코드뿐 아니라 서버에 연결하는 데 사용되는 클라이언트 코드입니다. 서버에 연결

server.js

var express = require("express"); 
var socket = require("socket.io"); 

var app = express(); 
var server = app.listen(process.env.PORT || 3000) 

package.json

{ 
    "name": "testProject", 
    "version": "1.0.0", 
    "description": "test project using node.js + sockets.io", 
    "main": "server.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "keywords": [ 
    "sockets", 
    "p5", 
    "node" 
    ], 
    "author": "henry zhu", 
    "license": "ISC", 
    "dependencies": { 
    "express": "^4.16.2", 
    "socket.io": "^2.0.4" 
    } 
} 

클라이언트 측 코드 :

var socket = io.connect("http://localhost:3000"); 

socket.io 버전 나는 클라이언트 측을 사용하고있다 2.0.4이다.

+0

https://stackoverflow.com/questions/27393705/socketio-get-http-localhost3000-socket-io-eio-3transport- pollingt-1418187, https://github.com/socketio/socket.io-client/issues/1097, https://github.com/socketio/socket.io-client/issues/1053 – wrangler

+0

@MikaS 무엇을 의미합니까? 브라우저의 연결 코드로? –

+0

나는 그가 서버에 연결되어있는 프론트 엔드 (클라이언트 측)의 코드를 언급하고 있다고 생각한다. 클라이언트 측에서 사용하는'socket.io' 버전을 포함하십시오. – SarathMS

답변

0

당신은 당신이 실제로 당신이 그들도 통신을 시작할 수있는 컴퓨터의 서버를 해고하는 경우 포트 3000에 자신의 컴퓨터에 연결을 시도하는 클라이언트 측에서이

var socket = io.connect("http://localhost:3000"); 

같이 연결합니다. 그러나 Heroku에서 호스팅하는 서버에 연결하려고합니다. 클라이언트가 서버와 동일한 도메인에 제공하는 경우 당신은 단순히 다음은 (보통 80)에 게재 된 포트에 자신의 도메인에 연결합니다

var socket = io(); 

소켓을 할 수 있습니다. 그것은 로컬 및 Heroku에서 작동합니다. 당신이 포트를 변경하려면 다음을 사용할 수 있습니다

var socket = io('https://example.herokuapp.com'); 

사용할 때 기억 : 클라이언트가 소켓 서버가 아닌 다른 서버에서 제공

var socket = io(':3000'); 

경우 전체 URL을 제공해야합니다 var server = app.listen(process.env.PORT || 3000) 당신은 Heroku에서 포트 3000을 사용하고 있지 않습니다. Heroku는 PORT 환경 변수를 설정하고 포트는 80입니다.