2014-10-13 3 views
0

저는 socket.io와 heroku를 처음 사용했습니다. 간단한 채팅 시스템을 썼지 만, Heroku에서 게시 할 때 작동하지 않습니다. app.js socket.io가 heroku에서 작동하지 않습니다.

var port = process.env.PORT || 3000; 

var io = require('socket.io')(port); 
// var url = require('url'); 


io.on('connection', function(socket,d) { 
    socket.on('sendMsg', function(data) { 
     console.log('SEND msg'); 
     console.log(data); 
     io.emit('getMsg',data); 
    }); 

    console.log(socket.handshake.query.id); 
}); 

와 클라이언트에서

: 내가 잘못했다

<script src="http://chatserversm.herokuapp.com:3000/socket.io/socket.io.js"></script> 
     <script> 
      var socket = io('http://chatserversm.herokuapp.com:3000?id=2'); 
      .... 

?

답변

1

클라이언트는 포트 3000에 연결을 시도하지만, Heroku가에 process.env.PORT은 당신이 당신의 클라이언트를 변경해야합니다 있도록 80 (및 SSL 443), 그에 연결을 포트 노출 80

에게 Heroku로 설정 포트.

동일한 포트의 HTTP 서버로 정상적으로 작동해야합니다.

편집 : 여기해야 할 일이 있습니다. 포트 80이 이미 암시되어 있기 때문에

var socket = io('http://chatserversm.herokuapp.com:80?id=2'); 

, 당신은 또한이 쓸 수 있습니다 : 첫 번째

는, 당신은 바로 포트에 연결하도록 클라이언트를 필요

var socket = io('http://chatserversm.herokuapp.com?id=2'); 

또 다른 유사한 문제가 있다는 것입니다 포트 3000에서 socket.io.js을 얻으려고하므로 다음으로 변경해야합니다.

<script src="http://chatserversm.herokuapp.com/socket.io/socket.io.js"></script> 
+0

감사합니다. eply Liadmat. 코드를 어떻게 바꿀 수 있습니까? – smoqadam

+0

몇 가지 지침을 추가했습니다. 도움이되는지 알려 주시면 – liadmat

+0

안녕하세요. 감사 – smoqadam

관련 문제