所以,我查看了此问题的先前答案,并且没有任何回复似乎与我的代码一起使用。
现在我正在尝试部署一个可以保存聊天记录的数据库,但未定义套接字错误会不断出现。
以下是有问题的代码:
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:未定义套接字
是不是因为我没有定义“人”这样的人。在我的其他代码中正确吗?
答案 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);
});
});