我正在尝试Node和Socket IO,我试图以类似的方式匹配路由节点 例如
app.get("controller/action/somevar", callback);
但是在套接字事件匹配中使用正则表达式似乎不起作用。有没有办法匹配正则表达式事件,或至少匹配通配符“*”
我试过这个。
socket.on(/.+/gi, function (data) {
socket.emit('set_time', { time: '13:32'});
});
我想拦截来自某些控制器或包含一些变量的所有事件。
ps:我发现一个博客提到没有办法匹配正则表达式事件,但那是2年前,也许情况发生了变化。
答案 0 :(得分:2)
套接字继承自EventEmitter
,因此只支持定期命名的事件(没有像通配符或正则表达式这样的花哨的东西)。
somewhat related question讨论了在socket.io
之上实现类似Express的路由层的一些选项,但the solution不是替代品,需要重写客户端和服务器代码
sockatron
模块采用了一种相当不同的方法,但也许适用于您的情况。