2013-07-11 25 views
3

我正在尝试编写一个简单的应用程序,该应用程序将使用socket.io将文本区域中键入的每个字符映射到 div,但我不断收到以下客户端错误: “的ReferenceError:套接字没有定义”socket.io - ReferenceError:套接字未定义

这里是我的服务器代码:

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 
}); 

注意iosocket.io.js脚本中的全局变量。

+0

它应该是'var socket = io.connect('http:// localhost:3000');' – TheBronx