无法将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方法,包括bind
和on
。 在socket.io:Server的情况下,两种方法都存在,而fromEventTarget
使用的是错误的。
我会使用fromCallback
来代替:
connections = Bacon.fromCallback(io, 'on', 'connection')
这似乎有点不稳定,所以我创build了一个Github问题 。