如何通过websockets从MtGox获取数据?

时间:2013-09-16 16:52:53

标签: javascript c++ sockets mtgox

我正在尝试使用我的C ++应用程序连接它。

如果我发送握手

socketio.mtgox.com:80/mtgox,它没有回答

websocket.mtgox.com:80/mtgox,它发送400 Bad request

我用Google搜索了这个:

socketio.mtgox.com:80/socket.io/1/websocket,这个连接,切换到websocket协议,然后发给我两条消息“1 ::”和“2 ::”。

在Wireshark中,一切都很好。

我该怎么办?

我试图发送{“频道”:“24e67e0d-1cad-4cc0-9e7a-f8523ef460fe”,“op”:“subscribe”} - 没有任何反应......

什么是正确的连接网址以及我要发送什么来订阅频道?

或者,任何人都可以发布一个简单的.js代码,该代码可以从HTML页面成功连接到MtGox吗?

没有node.js或socket.io,只是一个内置的HTML5 Websocket类,所以我可以让测试工作连接从我的计算机发送请求,以确保它不是网络问题或与我的程序无关的任何其他内容

我有这个脚本:

<script language="javascript" type="text/javascript">

  var output;

  function init()
  {
    output = document.getElementById("output");
    testWebSocket();
  }

  function testWebSocket()
  {
    var websocket = new WebSocket('wss://socketio.mtgox.com:443/mtgox');
    websocket.onopen = function(evt) { onOpen(evt) };
    websocket.onclose = function(evt) { onClose(evt) };
    websocket.onmessage = function(evt) { onMessage(evt) };
    websocket.onerror = function(evt) { onError(evt) };
  }

  function onOpen(evt)
  {
    writeToScreen("CONNECTED");
    //doSend("WebSocket rocks");
  }

  function onClose(evt)
  {
    writeToScreen("DISCONNECTED");
  }

  function onMessage(evt)
  {
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
  }

  function onError(evt)
  {
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
  }

  function doSend(message)
  {
    writeToScreen("SENT: " + message); 
    websocket.send(message);
  }

  function writeToScreen(message)
  {
    var pre = document.createElement("p");
    pre.style.wordWrap = "break-word";
    pre.innerHTML = message;
    output.appendChild(pre);
  }

  window.addEventListener("load", init, false);

</script>

但它打印错误:未定义并断开连接。

谢谢!

1 个答案:

答案 0 :(得分:0)

这个网址对我有用:

'wss://websocket.mtgox.com:443/mtgox?Currency=GBP'

您可以将货币更改为所需的货币,我认为您也可以使用逗号分隔的列表作为值