javascript - Socket.io客户端: respond to all events with one handler?

标签 javascript events socket.io

是否可以让 socket.io 客户端响应所有事件,而无需单独指定每个事件?

例如,像这样的东西(显然现在不起作用):

var socket = io.connect("http://myserver");

socket.on("*", function(){
  // listen to any and all events that are emitted from the
  // socket.io back-end server, and handle them here.

  // is this possible? how can i do this?
});

我希望当客户端 socket.io 代码接收到任何/所有事件时调用此回调函数。

这可能吗?怎么办?

最佳答案

socket.io-client 1.3.7的更新解决方案

var onevent = socket.onevent;
socket.onevent = function (packet) {
    var args = packet.data || [];
    onevent.call (this, packet);    // original call
    packet.data = ["*"].concat(args);
    onevent.call(this, packet);      // additional call to catch-all
};

像这样使用:

socket.on("*",function(event,data) {
    console.log(event);
    console.log(data);
});

虽然 Mathias Hopf 和 Maros Pixel 的答案很接近,但没有一个答案对我有用,这是我调整后的版本。

注意:这仅捕获自定义事件,而不是连接/断开连接等

关于javascript - Socket.io客户端: respond to all events with one handler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29247061/

相关文章:

javascript - Jest - 函数不调用其子异步函数

javascript - 如何删除对象?

Python 3 绑定(bind)方法订阅

java - 当选择 TableItem 时,带有 SWT.CHECK 的 Eclipse Table 小部件会触发两个事件

node.js - 使用 Socket.IO,如何找出断开连接的用户的 session ID?

javascript - 当涉及到 Websockets 时,我不确定要使此应用程序在 Google Cloud 上正常运行我缺少什么

node.js - 带有 Websocket 的 Nodejs REST API

如果在已选择的元素的一部分上使用,选择时的 Javascript SurroundContents 将无法按预期工作

javascript - Foundation 6.2 Slider 设置值与js

jquery - 使用 Jquery ui 可拖动,如何更改停止时的反转?