在我的Meteor 1.0应用程序中,我正在尝试将服务器连接到一家名为BTC China的公司提供的外部websocket(socket-io)API。有关 API 的详细信息,请参阅此处。
我找到的所有示例都是针对客户的。如何在 Meteor 服务器上订阅套接字 API?atmospherejs.com
上似乎没有流星包,我有点挣扎。我已经安装了socket-io
NPM 包并走到了这一步:
var socket = Npm.require('socket.io').listen('https://websocket.btcchina.com/');
socket.emit('subscribe', ['marketdata_cnybtc']);
socket.emit('subscribe', ['marketdata_cnyltc']);
socket.emit('subscribe', ['marketdata_btcltc']);
socket.on('connect', function(){
console.log("Hello,btcc!");
socket.on('trade', function (data) {
console.log("Hello,trade!");
console.log(data);});
});
但这返回以下错误:TypeError: Object https://websocket.btcchina.com/ has no method 'listeners'
,这意味着我错误地定义了socket
变量。我该如何解决这个问题?谢谢!
我创建了一个新的 Meteor 包joncursi:socket-io-client
来解决这个问题。有关更多详细信息和示例用法,请参阅 https://atmospherejs.com/joncursi/socket-io-client。由于我已将 NPM 二进制文件捆绑到一个包中,因此您不必担心安装 NPM 包、声明NPM.require()
依赖项等。最重要的是,您可以顺利部署到.meteor.com
。