2013-07-11 36 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