NodeJS v.0.10.X 不向后兼容 v0.8.X 的多播。
bind
似乎已经从同步变为异步。
我目前正在用一个可怕的软糖解决这个问题:
https://github.com/chrisdew/multicast-eventemitter/blob/master/lib/multicast-eventemitter.js#L87
我使用 API 的方式是否有错误,或者这里的向后兼容性是否存在问题?
如果我将 v0.10.X 代码与 NodeJS v0.8.XI 一起使用,则不会收到任何消息(我假设此处对“绑定”的调用是同步的,并且不调用提供的函数。
如果我将 v0.8.X 代码与 NodeJS v0.10.XI 一起使用,则会出现错误:
dgram.js:354
throw errnoException(process._errno, 'setMulticastTTL');
^
Error: setMulticastTTL EBADF
at errnoException (dgram.js:439:11)
at Socket.setMulticastTTL (dgram.js:354:11)
at MulticastEventEmitter.addListener (/home/chris/Dropbox/multicast-eventemitter/lib/multicast-eventemitter.js:96:14)
at Object.<anonymous> (/home/chris/Dropbox/multicast-eventemitter/examples/loopback.js:17:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
任何人都可以找到去除这种可怕软糖的方法吗?