2014-10-12 4 views
0

socket.io에 연결하는 데 문제가 있습니다. 아래 코드를 사용하면 브라우저 콘솔에 'io is not defined'오류가 계속 표시됩니다. 누구든지 내가 여기서 뭘 잘못하고 있는지 알 겠어?Node + Socket.io 연결 문제

,db = require("../../lib/db") 
,config = require("../../config") 
,app = require("../index") 
,io = require('socket.io')(app); 
; 
io.on('connection', function (socket) { 
    console.log('connected') 
}); 

exports.render = function(req, res){ 
    console.log(io) 
    res.render("vitron", {}); 
} 

클라이언트 측 :

<!doctype html> 
<html> 
<head> 
<title>Sockets</title> 
<script src="/socket.io/socket.io.js"></script> 
<script> 
var socket = io.connect('http://localhost'); 
socket.on('news', function (data) { 
console.log(data); 
socket.emit('my other event', { my: 'data' }); 
}); 
</script> 
</head> 
<body> 
</body> 
</html> 
+0

내 socket.io 초기화입니다/socket.io.js'. 존재한다면, 문제는 여러분의'socket.io' 초기화 서버 측이 요청시 socket.io.js 파일을 클라이언트에 제공 할 미들웨어 호출이 누락되어 있다는 것입니다. 올바른 미들웨어 초기화를하지 않으면 자동으로 제공되지 않습니다. 사물을 초기화하는 방법은 socket.io 문서에 많은 예제가있다. – jfriend00

+0

도움 주셔서 감사합니다! 나는 다음과 같은 오류가있다 : http : // localhost : 4602/socket.io/socket.io.js 미안하지만 미안하다. 어떤 종류의 미들웨어 호출을 언급하고 있는가? – austin809

+0

그러면 앱 서버가 자동으로'/ socket.io/socket.io.js' 파일을 제공하기 때문에 올바른 서버 측 초기화가 없다는 것을 알 수 있습니다. – jfriend00

답변

0

당신은 분명히이없는

서버 측이 ... 나는 시간에 유래 주위에 파고 봤는데,하지만 솔루션이 작동 것 같다 서버가 자동으로 /socket.io/socket.io.js 파일을 제공하도록 서버 측 초기화를 올바르게 수행하십시오.

여러 가지 방법이 있지만 가장 간단한 방법은 socket.io 서버 측 라이브러리가 자동으로 요청을 차단할 수있는 기본 제공 미들웨어를 사용하는 것입니다. /socket.io/socket.io.js 파일을 만들고 스크립트 파일을 제공하십시오.

express와 함께 노드를 사용할 때 socket.io 문서에서이를 정확하게 수행하는 방법을 보여줍니다. 표현을 사용하지 않는다면, 당신은 자신의 미들웨어로 그것을 할 수 있습니다. 또는 일반 노드를 사용중인 경우에는 직접 경로를 처리하거나 /socket.io/socket.io.js 파일을 직접 알려진 위치에 배치하여 직접 요청할 수 있습니다. 원하는 경우 CDN에 연결할 수도 있지만 내장 된 체계를 사용하면 서버의 socket.io 라이브러리를 업그레이드 할 때 자동으로 일치하는 클라이언트 측 라이브러리가 포함되므로 이점이 있습니다. 그것은 친절합니다. 나는 당신의 전반적인 설정이 여기에있다,하지만 정확히 모르는

오류로드`/socket.io이 있다면 그렇게 볼 수있는 브라우저 오류 로그를 확인 급행 4.

var express = require('express'); 
var app = express(); 
var server = app.listen(8081, function() { 
    console.log(new Date().toISOString() + ": server started on port 8081"); 
}); 
var io = require('socket.io').listen(server);