Socket.IO:如何在同一台服务器上的socket.on()事件之间进行通信/交换数据?

我有一行代码写在一个socket.on事件,这是从客户端调用来获取数据使用callback机制。
是否有可能在两个socket.on事件之间进行通信,并在同一服务器和同一文件中使用callback来交换数据?

对于。 例如,客户端和服务器之间的正常stream量:

 socket.emit('init',data,function(callbackFromServer)) //from client | ^ | | server respond through callback to client V | socket.on('init',function(data, callback){/*....*/}); // to server 

我想实现相同的情况,但在两个socket.on()事件之间的服务器本身之间交换数据。 即:

  client | ^ V | socket.on('someEvent',function(data,callback1){/*....*/}) // some.js | ^ V | // <-- I want to achieve this socket.on('init',function(data,callback2){/*.....*/}) // some.js 

有没有可能通过任何方法来实现这一点?

我不确定是否完全理解了用例,但是如果只是想调用其他函数,为什么不使用variables来引用这些函数呢? 你可以随时打电话给他们。

 var someEventFn = function(data, callback1) { initFn(data, function(result) { // here you have the result from the init method }); }, initFn = function(data, callback2) { // some js }; socket.on('someEvent', someEventFn); socket.on('init', initFn); 

然后你可以从initFn里调用initFn ,同时仍然允许在socket.on事件中调用它。 我正确理解你的问题吗?

在服务器端创build另一个socket io客户端,然后使用该客户端调用该函数。

 var socket = io.connect('http://localhost:port'); socket.on('connect', function () { socket.emit('another function', { param1: 'value1' }); });