【发布时间】:2012-09-02 02:50:32
【问题描述】:
假设我有一个像这样的对象(使用咖啡脚本):
class Client
constructor: (socket) ->
@id = socket.id
@socket = socket
# some other initialization here...
现在,每当@socket 发出某些东西时,我希望客户端对象通过发出相同的事件来模仿它。我想不出比只监视@socket 发出的每个事件并在 Client 类中手动发出它更好的方法,即:
class Client
constructor: (socket) ->
# ...
@socket.on('disconnection', onDisconnect)
@socket.on('message', onMessage)
onDisconnect: ->
this.emit('disconnection')
onMessage: (data) ->
this.emit('message', data)
我知道必须有更好的方法,但我不确定如何去做。
【问题讨论】:
-
检查一下,Matt:github.com/HenrikJoreteg/wildemitter 通配符事件处理...有帮助吗?
-
Jason 很高兴知道这一点,但不幸的是,我认为 socket.io 发出事件时不会这样。
标签: node.js events coffeescript socket.io eventemitter