2014-12-28 3 views
1

Ниже события связывания на socket.io работал правильно,Не удалось преобразовать Socket.io событие Bacon EventStream

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' 

ответ

4

В версии 0.7.46 есть улучшенная версия Bacon.fromEventTarget (или просто Bacon.fromEvent btw), которая должна найти подходящую пару привязки/развязки для вас.

2

fromEventTarget вслепую пытается несколько различных методов обратного вызова берущих, в том числе и bindon. В случае socket.io:Server оба метода существуют, и fromEventTarget использует неправильный.

Я хотел бы использовать вместо fromCallback:

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

Это кажется немного шаткой, так что я создал Github issue.

Смежные вопросы