Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于以下代码中socket.io事件连接的问题_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript 关于以下代码中socket.io事件连接的问题

Javascript 关于以下代码中socket.io事件连接的问题,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,在node.js/socket.io代码中,以下代码用于连接事件: socket.on('message', function(message) { var handler = messageFactory[message.messageType]; $chatMessages.append(handler(message)); }); 将messageFactory引用为数组(或至少使用[]符号)的逻辑/效果是什么?它是否为不同的messageType创建不同的句柄 谢谢

在node.js/socket.io代码中,以下代码用于连接事件:

socket.on('message', function(message) {
    var handler = messageFactory[message.messageType];
    $chatMessages.append(handler(message));
  });
将messageFactory引用为数组(或至少使用[]符号)的逻辑/效果是什么?它是否为不同的messageType创建不同的句柄

谢谢

将messageFactory引用为数组(或至少使用[]符号)的逻辑/效果是什么?它是否为不同的messageType创建不同的句柄

messageFactory是一个具有两种方法的对象
chat
system

我假设
message.messageType
“chat”
“system”

因此,
messageFactory[message.messageType]
只需获取两种方法中的一种

然后
handler(message)
调用该方法

这是因为
messageFactory.chat==messageFactory[“chat”]

如果查看服务器文件(“清单5:聊天室模块”),您将看到返回的方法

return {
  messageType: 'system',
  text: originalNick + ' changed nick to ' + newNick
};
因此,服务器返回一个消息对象,该对象带有在客户端读取的
messageType
属性,看起来messageType只是
“chat”
“system”

该代码基本上是OO命令设计模式。它根据返回的对象类型运行不同的命令

将messageFactory引用为数组(或至少使用[]符号)的逻辑/效果是什么?它是否为不同的messageType创建不同的句柄

messageFactory是一个具有两种方法的对象
chat
system

我假设
message.messageType
“chat”
“system”

因此,
messageFactory[message.messageType]
只需获取两种方法中的一种

然后
handler(message)
调用该方法

这是因为
messageFactory.chat==messageFactory[“chat”]

如果查看服务器文件(“清单5:聊天室模块”),您将看到返回的方法

return {
  messageType: 'system',
  text: originalNick + ' changed nick to ' + newNick
};
因此,服务器返回一个消息对象,该对象带有在客户端读取的
messageType
属性,看起来messageType只是
“chat”
“system”


该代码基本上是OO命令设计模式。它根据返回的对象类型运行不同的命令

谢谢您的回答,这很有意义!我仍然有点困惑,为什么messageFactory[“chat”]与messageFactory.chat是一样的。这只是javascript的一部分吗?你知道我在哪里可以找到更多关于该语言功能的信息吗?@joe。看花园。这是语言聚会谢谢你们的回答,这很有道理!我仍然有点困惑,为什么messageFactory[“chat”]与messageFactory.chat是一样的。这只是javascript的一部分吗?你知道我在哪里可以找到更多关于该语言功能的信息吗?@joe。看花园。这是语言的聚会