【发布时间】:2019-12-12 19:19:24
【问题描述】:
我正在努力促进和组织我在套接字通信和 Node.JS 之间的工作(我的项目太大)
我使用我创建的函数代替客户端中的 socket.emit() 函数:
function socketEmit(socketName, functionName, data){
socket.emit(socketName, {functionName: functionName, data: data});
}
socketEmit('exampleClass', 'exampleFunction', 'test');
socketEmit('exampleClass2', 'exampleFunction2', 'test');
发出后,我使用此函数在服务器端获取套接字(socket.on)。并根据“socketName”在类中注册
socket.on('exampleClass', function (socketData){
var exampleClass = require('./server/exampleClass.js');
exampleClass.registerSocket(socket, socketData);
})
socket.on('exampleClass2', function (socketData){
var exampleClass2 = require('./server/exampleClass2.js');
exampleClass2.registerSocket(socket, socketData);
})
在类中有这个函数“registerSocket”来执行相同的操作
exampleClass.js
module.exports = {
registerSocket: function(socket, socketData){
var functionName = socketData.functionName;
var data = socketData.data;
[functionName](socket, data);
},
}
function exampleFunction(socket, data){
console.log('test');
}
但是,我在 registerSocket 函数的这部分有一个错误:
[functionName] is not a function
【问题讨论】: