나는 socket.io 구현을 가지고 있으며 도메인간에 작동되도록하려고 노력하고 있지만 실제로는 불가능한 것처럼 보입니다. 내 정확한 사용 사례는 다음과 같습니다.socket.io는 여러 도메인에서 작동합니까?
- socket.io를 실행하는 node.js 서버가 있습니다.
- 난 어디서나 호스트 할 수있는 JS/HTML5 게임을 가지고 있는데, 클라이언트 socket.io 코드가 있고 서버에 연결을 시도한다.
- SpiderMonkey를 통해 모바일 장치에서 실행되는 동일한 JS 코드가 있습니다 (이것이 어떤 도메인에서라도 실행해야하는 주된 이유 중 하나입니다).
내 node.js 서버의 JS 코드를 브라우저에 제공하지 않으면 소켓에 연결할 수 없다는 것을 알게되었습니다. 브라우저에서 내 디스크의 HTML 파일을 열면 예를 들어 작동하지 않습니다.
서버 코드 :
io.on("connection", function(socket)
{
this.socket = socket;
this.socket.on("echo", function(str){ this.socket.emit("message", str); }.bind(this));
}.bind(this));
클라이언트 코드 :
this.socket = io.connect(ip);
this.socket.on("message", function(str) { console.log(str); });
그리고 심지어 연결할 수 없습니다, 나는 그것을 연결하려고 나의 인쇄를 얻을 수 있지만, 성공하지 다음 시작 핑 오류가 발생했습니다. 그래서, 이것도 가능합니까? 아니면 긴 여론 조사를해야합니까?
오류 :
[Error] Failed to load resource: A server with the specified hostname could not be found. (socket.io, line 0)
EXTRA 정보 : 내가 HTML 파일이 파일을 사용하여 디스크에서 오픈에서 연결을 시도하고 경우에 특별히 작동하지 않습니다 : ///. 같은 네트워크에있는 여러 컴퓨터에서 시도해 보겠습니다 ...
'ip'가 유효하지 않은 것 같습니다. 그것이 무엇으로 설정되어 있습니까? 그리고 dev 도구 네트워크 탭에서 요청에 무슨 일이 일어나고 있다고 말합니까? –
URL에 직접 접속하여 '브라우저'에 직접 접속하여 연결되는지 확인하십시오. 그리고 만약 그렇다면 이것은 핸드 쉐이크 문제 일 수 있습니다 ... – Ravi
ip는 localhost : 13375입니다. index.html을 만들면 브라우저에서 아무 문제없이 연결할 수 있습니다. – Eli