无法将socket.io事件转换为Bacon EventStream

socket.io上的事件绑定下面工作正常,

 io = require('socket.io')() io.on 'connection', (socket) -> console.log socket.id io.listen 3000 

然后尝试将socket.io event转换为Bacon EventStream

 Bacon = require('baconjs').Bacon io = require('socket.io')() connections = Bacon.fromEventTarget io, 'connection' connections.onValue (socket) -> console.log socket.id io.listen 3000 

为什么在下面失败?

 TypeError: Object connection has no method 'on' 

在版本0.7.46中有一个改进版本的Bacon.fromEventTarget(或只是Bacon.fromEvent btw),它应该为你find合适的绑定/取消绑定对。

fromEventTarget盲目地尝试一些不同的callback方法,包括bindon 。 在socket.io:Server的情况下,两种方法都存在,而fromEventTarget使用的是错误的。

我会使用fromCallback来代替:

 connections = Bacon.fromCallback(io, 'on', 'connection') 

这似乎有点不稳定,所以我创build了一个Github问题 。