socket.io的问题:socket没有定义错误

时间:2014-10-23 18:02:57

标签: node.js sockets socket.io

所以,我查看了此问题的先前答案,并且没有任何回复似乎与我的代码一起使用。

现在我正在尝试部署一个可以保存聊天记录的数据库,但未定义套接字错误会不断出现。

以下是有问题的代码:

socket.on('person', function(msg){
    console.log('person: ' + msg);
    socket.broadcast.emit('person', msg);
    client.incr('msg_id', function(err, msg_id) {
      console.log('msg_id', msg_id);
      client.hset('history', msg_id, msg);
    });
  });

socket.on(' person',function(msg){  ^ ReferenceError:未定义套接字

是不是因为我没有定义“人”这样的人。在我的其他代码中正确吗?

1 个答案:

答案 0 :(得分:0)

错误是没有定义套接字变量。

您的代码应放在socket.io 连接回调中。

使用socket.io + express的完整示例:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function(socket){
    socket.on('person', function(msg){
    console.log('person: ' + msg);
    socket.broadcast.emit('person', msg);
    client.incr('msg_id', function(err, msg_id) {
        console.log('msg_id', msg_id);
        client.hset('history', msg_id, msg);
    });
});