2014-09-26 2 views
2

이 같은 URL에 대한 404를 얻을 : http://localhost.dev/socket.io/?EIO=3&transport=polling&t=1411749802784-54socket.io는 수 (404 개) 요청

소켓 IO 버전 : 1.x에서

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

server.listen(8080); 

app.get('/', function(req,res){ 
    console.log('started'); 
}); 

//Receive message 
io.sockets.on('connection',function(socket){ 
    socket.on('send message',function(data){ 
     //Send message out 
     io.sockets.emit('new message',data); 
    }); 
}); 

그래서 내가 가지고있는 APP.JS port 80 및 포트 8080에 nodejs에서 실행되는 내 웹 사이트와 socket.io js 파일을 다음과 같이 포함합니다 : <script src="http://localhost.dev:8080/socket.io/socket.io.js"></script> 및을 열 수 있습니다.새 탭에 파일이 있지만 새로운 버전과 관련이 있다고 생각합니다. 노드로 시작하고 있습니다.

// LE

$(document).ready(function(){ 
    //Socket.io 
    var socket = io.connect(); 
    //Form 
    var $messageForm  = $('#chatForm'); 
    var $messageFormInput = $messageForm.find('#messageText'); 
    var $chat    = $('.chat'); 

    //Bind submit form 
    $messageForm.submit(function(e){ 
     e.preventDefault(); 
     socket.emit('send message',$messageFormInput.val()); 
     //Clear input 
     $messageFormInput.val(''); 
    }); 

    //Receive message 
    socket.on('new message',function(data){ 
     $chat.append(data); 
    }); 









}); 

나는이 문제를 해결할 수있는 방법을 아는 사람 있나요?

+0

을 시도'HTTP :은? t = 1411749802784-54' 다음 //localhost.dev/socket.io/ EIO는 = 3 & 교통 = 폴링 및 당신은하지 않을 수 있습니다 8080 포트의 스크립트를 페이지에 올바르게 추가하십시오. URL이'http : //localhost.dev : 8080/socket.io /'이 아니라는 사실은 node/socket.io가 아니라 URL로 펑키 한 일이 일어나고 있음을 보여주는 꽤 좋은 지표입니다. – Brian

+0

보시다시피 어떻게 든 첫 번째 404 URL을 보면 포트': 8080'을 요청하지 않습니다 – Uffo

+0

소스를 보거나 개발자 콘솔 도구로 검사하여 HTML 소스를 두 번 확인하여 브라우저의 스크립트 태그가 읽었는지 확인 했습니까? 실제로 그것에 8080을 가지고 있습니까? 스크립트 태그가 8080이라면 요청은 8080이어야합니다. 브라우저에 플러그인이있어 포트를 무시하게됩니다. 브라우저는 URL의 8080 포트를 모두 무시하지 않습니다. – Brian

답변

3

당신이 당신의 콘솔에서 404 오류를 받고있는 경우

var socket = io.connect('http://localhost.dev:8080'); 
+0

그게 문제입니다. 웹 페이지 자체가 80 이상 (기본값)을로드하고 있지만 socket.io는 8080 이상을 수신합니다. 따라서 페이지가 80에서 URL을 요청하려고하지만 8080을 사용해야합니다. – Brian

+0

작동하지 않습니다 ... 여전히 404가 표시됩니다. , @ jfriend00 노드와 아파치 서버가 다른 포트에있다. – Uffo

+0

@ Uffo - 다른 포트에 있다면, 클라이언트에서 연결할 때 포트를 지정해야한다. 'io.connect()'는 웹 페이지가로드 된 포트에 연결됩니다. 웹 페이지가로드 된 호스트와 포트에 웹 서버가없는 경우 웹 서버의 위치를 ​​알 수 없습니다. – jfriend00