2016-10-25 3 views
0

저는 socket.io를 처음 사용 했으므로 localhost에서 올바르게 작동하는 다른 자습서에서 많은 예제를 얻을 수있었습니다. 이제는 내 웹 사이트에서 작동하도록 도움이 필요합니다. 나는 행운이없는 며칠 동안 지원 양식을 찾아 보았습니다. 어떤 도움을 주시면 감사하겠습니다. 여기까지 내가 한 것입니다 ...Socket.io는 localhost에서 작동하지만 웹 서버에서는 작동하지 않습니다.

FileZilla FTP 클라이언트를 사용하여 (내 로컬 호스트에서 작동하는) 코드를 내 웹 서버 (https://ifastnet.com/에 의해 호스팅 됨)로 내 보낸 후 동일한 "npm init"을 수행했습니다. "npm install express --save", "npm install socket.io --save", "node app.js"절차를 내 localhost에서 작동시킬 수있을 때 CMD에서 사용한 퍼티 SSH에 사용합니다.

나는 내 웹 사이트에 갈 때 나는 클라이언트 측에서

var socket = io.connect('http://31.22.4.6:1122'); 

를 사용할 때 브라우저 콘솔에서 (구글 크롬) "순 :: ERR_CONNECTION_RESET을"점점 계속. 내가

내 코드는 다음과 같습니다 행운과

var socket = io(); 

내가 해봤 많은 솔루션을 사용할 때

나는 브라우저 콘솔에서 "404 (찾을 수 없음)"얻을. 도움에 미리 감사드립니다.

서버

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 

server.listen(); 
// server.listen(1122, "31.22.4.6"); 

app.get('/', function(req, res) { 
    res.sendfile(__dirname + '/client/index.html'); 
}); 

console.log("server started"); 


io.on('connection', function(socket) { 
    console.log("connection made"); 
    socket.emit('news', { 
     hello: 'world' 
    }); 
    socket.on('my other event', function(data) { 
     console.log(data); 
    }); 
}); 

클라이언트

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
<script> 
    // var socket = io.connect('http://localhost'); 
    // var socket = io.connect('http://31.22.4.6:1122'); 
    var socket = io(); 
    // var socket = io.connect(); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 
+0

[이 지침] (http://kb.ifastnet.com/index.php?/article/AA-00416/52/Node.js/Using-Node.js-on-a)을 따라했다고 가정합니다. -premium-shared-hosting-account.html)? 이 경우, 클라이언트에서 기본 포트 (80)를 사용하십시오 :'var socket = io ('http://31.22.4.6')'(포트 80은 암시 적입니다). 그리고 서버의'server.listen (1122, "31.22.4.6")'의 ​​주석 처리를 제거하십시오. – Xodrow

+0

Xodrow 주석 주셔서 감사합니다. 그걸 시도했지만 브라우저의 콘솔에 "net :: ERR_CONNECTION_RESET"오류가 계속 표시됩니다. – DarkwallLKE

답변

0

당신은 https://ifastnet.com을 사용하고 있습니다. 서버에서 노드를 실행할 수있는 권한이없고 포트 1122에서 콘텐츠를 제공 할 수있는 액세스 권한이없는 것으로 보입니다.

아마존과 같은 ssh를 제공하는 서비스가 필요합니다. 구매하기 전에 시도하고 싶다면 몇 달 동안 Ubuntu 가상 머신을 사용해 볼 수있는 무료 티어 서비스가 있습니다.

+0

예 ifastnet을 사용하고 있습니다. 그들은 나에게 SSH를 제공했다. 퍼티 (포트 1122)와 내 자격 증명을 사용하여 로그인 할 수 있습니다. 거기에서 "node app.js"명령을 사용하여 노드를 시작할 수 있습니다. 그것을 실행할 때, 메시지를 putty 명령 행에 인쇄 할 수 있습니다. 전의. 위의 서버 코드를 살펴보면 "node app.js"를 실행하면 명령 줄에서 "server started"가 표시됩니다. – DarkwallLKE

관련 문제