2013-07-11 2 views
3

Я пытаюсь написать простое приложение, которое отражает каждый символ, который я набираю в текстовой области, на div , используя socket.io, но я продолжаю получать следующую ошибку клиента: "ReferenceError: сокет не определен"socket.io - ReferenceError: socket не определен

Вот мой код сервера: код

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

server.listen(3000); 

app.get('/', function(req,res){ 
    res.sendfile(__dirname+ '/index.html'); 
}); 

io.sockets.on('connection', function(socket){ 

    socket.on('keyup', function(data){ 
     io.sockets.emit('keydisplay',data); 
    }); 


}); 

Клиент:

<div id="output"></div> 
    <textarea id = "input"></textarea> 

    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="/socket.io/socket.io.js"></script> 

    <script> 
     jQuery(function($){ 

      $('#input').keyup(function(){ 
       content = $('#input').val(); 
       socket.emit('keyup', content); 

      }); 

      socket.on('keydisplay', function(data){ 
       $('#output').append(data); 
      }); 
     }); 


    </script> 

зацепки? Что я делаю не так?

ответ

10

Ну, разве это не очевидно? Вы не определили socket в коде клиента (это то, что означает ReferenceError):

jQuery(function($){ 
    var socket = io.connect('http://localhost'); 
    // the other code goes here 
}); 

Обратите внимание, что io является глобальной переменной в socket.io.js сценарии.

+0

это должно быть 'var socket = io.connect ('http: // localhost: 3000');' – TheBronx

Смежные вопросы