在套接字.在回调时获取套接字对象中的监听器名称
in socket.on callback get name of listener in the socket object
在哪里可以找到套接字对象中的套接字侦听器名称?
的例子:
socket.on('test', function(data) {
// is there a property of socket object that is equal to 'test' ?
})
编辑:我需要这个,因为我的监听器和回调器在不同的文件中,我不想手工复制监听器的名称。
socketController with listeners:
'use strict';
const onSendMessage = require('./message/send');
const onGetMessages = require('./message/get');
const onAskFriend = require('./friends/ask');
const onAcceptFriend = require('./friends/accept');
const onRemoveFriend = require('./friends/remove');
const onGetFriends = require('./friends/get');
module.exports = (socket) => {
// message
listenTo(socket, 'sendMessage', onSendMessage);
listenTo(socket, 'getMessages', onGetMessages);
// friends
listenTo(socket, 'getFriends', onGetFriends);
listenTo(socket, 'askFriend', onAskFriend);
listenTo(socket, 'acceptFriend', onAcceptFriend);
listenTo(socket, 'removeFriend', onRemoveFriend);
};
function listenTo(socket, name, callback) {
socket.on(name, data => callback(socket, data));
}
socket getFriends:
'use strict';
const db = require('../../database/mongo').collections;
const ObjectID = require('mongodb').ObjectID;
module.exports = (socket) => {
const query = {
ownerid: ObjectID(socket.id)
}
db.friends.find(query).toArray((err, friends) => {
if (err) {
return socket.emit('getFriends', {status: 500});
}
socket.emit('getFriends', {status: 200, body: friends});
});
};
我不喜欢每次都手写socket.emit('getFriends')
,这样容易出错。
我不知道你是否能做到这一点(我认为不能),但为什么不干脆:
function listenTo(socket, name, callback) {
socket.on(name, data => callback(socket, name, data));
}
:
module.exports = (socket, message) => {
const query = {
ownerid: ObjectID(socket.id)
}
db.friends.find(query).toArray((err, friends) => {
if (err) {
return socket.emit(message, {status: 500});
}
socket.emit(message, {status: 200, body: friends});
});
};
相关文章:
- 如何使用HTML5与UDP套接字通信
- 在node.js中写入ECONNRESET错误和套接字连接检查
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 套接字服务器向客户端广播,但不从两者接收
- 如何确定套接字中的变量是否匹配
- 如何通过网络套接字连接到树莓派上的Mosquitto经纪人
- 快速的套接字 io 实例/中间件
- PHP:Web套接字和html 5
- 无法从客户端发出套接字消息
- STOMP web套接字回调不'不起作用
- Will my'新对象'在套接字断开连接时被垃圾收集
- 套接字服务器在本地获得500毫秒的往返时间
- 将服务器托管的Web应用程序连接到本地Web套接字
- 通过套接字发送画布元素,JS中的最大堆栈大小
- 如何使用套接字将node.js与ada连接起来
- 在套接字.在回调时获取套接字对象中的监听器名称
- 套接字.IO监听器必须是套接字上的函数.io事件
- 套接字IO独立javascript监听器
- 如何从配置中加载套接字io事件监听器
- 套接字可以注册未调用的监听器