Mtgox
使用 Mt.Gox 流媒體 API 訂閱市場深度更新
我想使用流 API <https://en.bitcoin.it/wiki/MtGox/API/Streaming>訂閱市場深度更新。我只想接收特定符號(例如 EUR)或所有符號的深度更新。所以我連接到 wss://websocket.mtgox.com 並發送命令
{ "type": "depth", "op": "mtgox.subscribe" }
我期待收到所有符號的深度更新。但它只向我發送 BTCUSD 的更新。儘管帶有參數 “type” = “trades” 的相同訂閱命令會發送所有交易品種的交易(不僅是 BTCUSD)。這有點令人困惑。
在 API 文件中提到了貨幣參數:websocket.mtgox.com:80/mtgox?Currency=EUR,但在連接到此 websocket 後,我也會收到程式碼更新。但我不需要股票更新。
問題是我如何才能只接收特定程式碼的市場深度更新?(或所有符號)
這是我的做法
node.js
var events = require('events'); var io = require('socket.io-client'); var MTGOX = function(){ var self = this; var socket = io.connect('https://socketio.mtgox.com/mtgox'); socket.on('message', function(data){ var message = data; if( message.private == "depth"){ self.emit('depth', data.depth); } else if( message.private == "ticker" ){ self.emit('ticker', data.ticker); } else if( message.private == "trade" ){ self.emit('trade', data.trade); } }); }; MTGOX.prototype.__proto__ = events.EventEmitter.prototype;
然後我只聽
depth
事件。當我第一次解決這個問題時,我發現這個項目很有幫助。
在 Java 中,您可以使用XChange庫,該庫通過統一的 API 為一系列交換提供此數據和其他數據。