5

socket.io を使用して、テキスト領域に入力した各文字を div にミラーリングする単純なアプリを作成しようとしていますが、次のクライアント エラーが発生し続けます:「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>

手がかりはありますか?私は何を間違っていますか?

4

1 に答える 1

11

まあ、それは明らかではありませんか?socketクライアント コードで定義していません(これが ReferenceError の意味です)。

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

はスクリプトio内のグローバル変数であることに注意してください。socket.io.js

于 2013-07-11T22:47:14.757 に答える