【问题标题】:Failed to convert socket.io event to Bacon EventStream无法将 socket.io 事件转换为 Bacon EventStream
【发布时间】:2015-02-25 03:27:10
【问题描述】:

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'

【问题讨论】:

    标签: javascript node.js coffeescript socket.io bacon.js


    【解决方案1】:

    在 0.7.46 版中,有一个改进的 Bacon.fromEventTarget 版本(或者只是 Bacon.fromEvent 顺便说一句),它应该为您找到合适的绑定/取消绑定对。

    【讨论】:

      【解决方案2】:

      fromEventTarget 盲目地尝试了几种不同的回调方法,包括bindon。在 socket.io:Server 的情况下,两种方法都存在,fromEventTarget 使用了错误的方法。

      我会改用fromCallback

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

      这似乎有点不稳定,所以我创建了一个Github issue

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多