내 작은 게임 서버가 로컬에서 실행될 때 제대로 작동하지만 내 리노 드에 올려 놓으면 오류가 발생합니다.Socket.io 코드가 로컬에서 작동하고 서버에서 실행되지 않습니다
전체 소스 : https://github.com/raimondi1337/null-terminus
와 관계있는 서버 코드 :
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clients = {};
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
관련 클라이언트 코드 :
<body>
<script src="/socket.io/socket.io.js"></script>
<h3 id="#player"></h3>
<canvas id="canvas" width="750" height="500"></canvas>
<script>var socket = io();
실행은, 내가 얻을 :
GET http://staging.dustinraimondi.com/socket.io/socket.io.js
(index):8 Uncaught ReferenceError: io is not defined
나는 경우, 변화시키다 socket.io CDN socket.io 최근에 스크립트 태그 내가 얻을 : socket.io-1.4.5.js:1 GET http://staging.dustinraimondi.com/socket.io/?EIO=3&transport=polling&t=LR3DCHp 404 (Not Found)
내가 Socket.IO only works locally IO에 따라 io.connect(23.239.8.165:3000);
에 io();
을 변경하면 여전히 정의하고는 'GET'실패합니다. 'io.connect();'를 사용하는 경우와 동일합니다. 서버의 IP를 지정하고 socket.io CDN을 사용하는 경우와 같습니다.
여기 웹 개념은 무엇입니까?
EDIT : Socket.io가 NPM을 통해 서버에 설치되어 있으면 서버가 실행 중입니다.
Linode가 작동하지만, 포트 80의 요청을 매핑 않는 방법 방법을 모르고 (있는 당신의 웹 사이트가 될 것으로 보인다이 블록은이 하위 도메인 내 nginx를 구성에 추가되어야했다 익스프레스 앱이 실행되는 포트 3000에 액세스 할 수 있습니까? – robertklep
Linode는 단지 vps입니다. CentOS7이 설치되어 있고 웹 서버로 nginx를 실행하고 있습니다. 내 nginx 구성에 문제가 있습니까? – Strelok
일반적으로 꽤 간단한 설정이지만 그래, 될 수 있습니다. [socket.io와 proxys websocket 연결을 사용하는] 내 서버의 [여기 요점은] (https://gist.github.com/robertklep/f7221778f475832d6d236db7c180488e)입니다. – robertklep