从 Socket.io 通知运行代码

Running code from Socket.io notification

本文关键字:运行 代码 通知 io Socket      更新时间:2023-09-26

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

在该示例中,我可以向 socket.io 消息添加类似 actionType: rowdeleted 的内容,然后只检测客户端上的actionType并刷新网格。无论如何,问题是可以有无限数量的操作(并且可以添加新操作),因此我无法在客户端为每个操作类型编写函数。

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

我愿意接受任何建议:)

您是否考虑过类似的东西,但不是 eval。 显然,您必须拥有在某处执行的代码,无论是在服务器端。 为什么不创建一种方法来让客户端知道要获取和执行它的脚本/代码/操作。

出于类似的需要,我使用了类似的东西。 操作类型引用了服务器上特定路径中的脚本 (/js/actions/ACTION.js)。 在获取运行操作的命令后,客户端将检查它是否有该操作,如果没有,它将获取该操作。之后,它将在脚本上运行该操作。 RequireJS对这种事情有好处。 它将跟踪您有哪些操作,哪些操作没有。 它还将确保在运行某些需要它的函数之前获取操作(如果它没有它)。

eval is evil (c)

所以我无法在客户端为每个操作类型编写一个函数。

如果不会在客户端上处理事件,则从服务器发出事件是没有意义的

为服务器发出的每种类型的事件设置客户端句柄功能。否则绑定所有事件并处理