2013-10-17 2 views
0

이 문제를 직접 해결하려고했지만 실패했습니다.Socket.io는 8000 포트에서만 제공되며 다른 서비스와 함께 제공되지 않습니다.

저는 Yii의 "MjmChat"확장 (nodejs에서 채팅 확장)을 실행하려고합니다. 실제로 작동하지만 8000 포트에서만 작동합니다. 8000과 다른 포트를 설정하면 socket.io는 js를 제공하지 않습니다.

는 시험을 위해, 난 그냥 모든 nodejs 코드를 잘라, 그래서 때 그것은 그래서 그것은 내 테스트 서버 (gs-test.ru)의 웹 루트에 위치한

var express = require('express'); 

var app = express(), 
    server = require('http').createServer(app), 
    io = require('socket.io').listen(server); 

server.listen(8000); 

처럼 봐 실행

[email protected]:/var/www/fortis/data/www/gs-test.ru# node app.js 

http://gs-test.ru:8000/socket.io/socket.io.js이 js를 잘 처리합니다.

BUT! 8000을 8001, 9000, 9999로 바꾸려고한다면 (현재 app.js를 멈추고 다시 시작하면됩니다) 작동하지 않습니다! socket.io.js를로드 할 수 없습니다.

내가 시도한 모든 포트는 무료 (#netstat -ntp로 테스트)이므로 문제는 apache/nginx 또는 웹 서버 구성의 smth (fastvps.ru VDS에서 debian squeeze 실행)와 관련이 있습니다. 사전에

감사합니다!

답변

0

동일한 출처 정책을 위반하고 있습니까? 구성표, 호스트 및 포트가 일치해야합니다. 그렇지 않으면 브라우저가 연결되지 않습니다. 많은 사람들이 이것을 위해 haproxy를 좋아합니다. 원하는 포트에서 앱을 시작하는 것처럼 보이지만 브라우저를 통해 연결할 수는 없습니다. 여기에도 빠른 앱이 있습니까?

+0

실제로 저는 서버 구성이 좋지 않습니다. 몇 가지 예를 복사하고 내 작업을 변경하려고합니다 ... 그렇다면 명시 적 앱을 실행하면 무슨 뜻입니까? "node app.js"뿐만 아니라 몇 가지 더 많은 서비스를 실행해야합니까? – Fortis

+0

브라우저에서 테스트 중이십니까? 이 도움이 될 수 있습니다 믿습니다 : http://stackoverflow.com/a/12039741/2005565 – Plywood

+0

그렇게하려고하지만 경고 "Socket.IO의'listen()'메서드는'http.Server' 인스턴스를 기대하고 있습니다. 첫 번째 매개 변수 ", 그리고 socket.io가 시작되지만 브라우저에"Can not GET /socket.io/socket.io.js " – Fortis

관련 문제