socket.io - ReferenceError:未定义套接字

Posted

技术标签:

【中文标题】socket.io - ReferenceError:未定义套接字【英文标题】:socket.io - ReferenceError: socket is not defined 【发布时间】:2013-07-10 09:32:00 【问题描述】:

我正在尝试编写一个简单的应用程序,它将我在文本区域中键入的每个字符镜像到 div 使用 socket.io,但我不断收到以下客户端错误:“ReferenceError: socket is not defined”

这是我的服务器代码:

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>

有什么线索吗?我做错了什么?

【问题讨论】:

【参考方案1】:

嗯,这不是很明显吗?您尚未在客户端代码中定义 socket(这就是 ReferenceError 的含义):

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

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

【讨论】:

以上是关于socket.io - ReferenceError:未定义套接字的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Socket.io.js(node.js + express + socket.io)

socket.io 中文手册 socket.io 中文文档

socket.io 中文手册 socket.io 中文文档

socket.io 中文手册 socket.io 中文文档

socket.io 中 io.on 和 socket.on 的区别

学习 Socket.io