繁体   English   中英

从Socket.io通知运行代码

[英]Running code from Socket.io notification

我正在运行一个NodeJS服务器,当somebody执行something ,它会向客户端发送通知,例如,当客户端从网格中删除行时,Socket.io会通知其余客户端该行被删除。

在该示例中,我可以在socket.io消息中添加诸如actionType: rowdeleted之类的内容,然后仅在客户端上检测到actionType并刷新网格。 无论如何,问题在于动作可以无限多(并且可以添加新动作),因此我无法在客户端为每种动作类型编写函数。

然后我想也许我可以通过socket.io发送一些代码并让客户端运行它,但是我不确定这是否是实现我想要的最佳方法。 另外,客户端将如何运行该代码? 通过eval

我愿意接受任何建议:)

您是否考虑过类似但并非如此的事情。 显然,您必须在某些地方执行代码,无论是在服务器端。 为什么不创建一种让客户知道要获取并执行它的脚本/代码/动作的方法。

我出于类似的需要使用了类似的东西。 动作类型在我的服务器(/js/actions/ACTION.js)的特定路径中引用了脚本。 在获得运行操作的命令后,客户端将检查它是否具有该操作,如果没有,它将去获取该操作。 之后,它将在脚本上运行操作。 RequireJS对这种事情很有用。 它将跟踪您有什么动作和没有什么动作。 在运行需要它的功能之前,它还将确保获得不执行的操作。

eval是邪恶的(c)

因此我无法在客户端为每种操作类型编写函数。

如果不会在客户端上处理事件,则没有必要从服务器发出事件

对于服务器发出的每种事件,都有一个客户端句柄函数。 否则绑定所有事件 ,然后处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM