【问题标题】:trouble with socket.io: socket is not defined errorsocket.io 的问题:未定义套接字错误
【发布时间】:2017-09-20 16:19:13
【问题描述】:

所以,我查看了这个问题的先前答案,但似乎没有一个回复适用于我的代码。

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

这是有问题的代码:

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: 未定义套接字

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

【问题讨论】:

  • 问题出在代码的其他地方。 socket 来自哪里?您是否在任何地方取消设置?

标签: node.js sockets socket.io


【解决方案1】:

错误是说socket变量没有定义。

您的代码应该放在 socket.io connection 回调中。

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

【讨论】:

    猜你喜欢
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2011-08-03
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多