나는 여기에 내 서버원격 Node.js 서버에 연결하는 방법은 무엇입니까?
C9.io을 사용하고 있습니다 : https://xxx-c9-smartytwiti.c9.io을 내 코드는 다음 URL에서 실행되고 있는지 말해 : 나는이 URL을 생성하는 실행하면
var io = require('socket.io');
var socket = io.listen(8080, { /* options */ });
socket.set('log level', 1);
socket.on('connection', function(socket) {
console.log("connected");
socket.on('message1', function(data) {
socket.emit("message1",JSON.stringify({type:'type1',message: 'messageContent'}));
});
socket.on('disconnect', function() {
console.log("diconnected");
});
});
합니다.
주는 : XXX 내가 내 고객에 무슨 짓을 내 작업 공간
입니다 : 연결에 "https://xxx-c9-smartytwiti.c9.io:8080/" ....
다음내가 콘솔 (파이어 폭스 브라우저)에서이 오류가 발생합니다 :
cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://xxx-c9-smartytwiti.c9.io:8080/socket.io/1/?t=1406060495041. This can be fixed by moving the resource to the same domain or enabling CORS.
주 : 내가 로컬 내 서버를 호스트가 완벽하게 작동 할 때.
프록시 또는 방화벽을 사용하는 c9.io처럼 보이지만 원격으로 c9.io로 작성된 코드를 어떻게 테스트 할 수 있습니까?
UPDATE
는 루벤의 응답에 따르면 난 내 서버를 변경했습니다, 그리고 나는했습니다 (내 socket.io 클라이언트는 C9에서 호스팅하지만 여전히 원격 클라이언트 작업이 얻을 수없는 경우 작동 또한 내 FTP에서 클라이언트하지만 같은 결과를) 호스팅 :
// module dependencies
var http = require("http"),
sio = require("socket.io");
// create http server
var server = http.createServer().listen(process.env.PORT, process.env.IP),
// create socket server
io = sio.listen(server);
// set socket.io debugging
io.set('log level', 1);
io.set('origins', '*:*');
io.sockets.on('connection', function (socket) {
socket.emit('news', { message: 'Hello world!' });
socket.on('my other event', function (data) {
console.log(data.message);
});
});
이 .. 원래 구성이 무시 된 것처럼, 나 또한 C9.io 확실하지 않다
제안을 같은데?
건배.
감사합니다. Ruben, 이제 내 클라이언트 코드가 c9에서 작동하지만 원격 액세스에서 여전히 "교차 원점 요청 차단됨"이 표시됩니다. 내 업데이트를 참조하십시오. –