bitFlyerのRealtime APIを呼んでみる

Realtime APIとは

HTML5の新技術の1つである、WebSocketを用いて、bitFlyerのAPIを呼び出すインターフェース。

通常のREST API呼び出しの場合は、クライアント側から情報を取りにいかなければならないが、WebSocketの場合は一度チャネルに接続すると、あとはサーバー側から自動的に配信されるようになる。

RealTime APIの呼び出し準備

Visual Studioで新規プロジェクトの作成

手順は以下を参照

BitFlyerAPIを呼んでみる

※ 前回と同じソリューションに追加するのが、見比べやすくてオススメ

 

以下のソースをコピー&ペースト

出典: bitFlyerのサンプル

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Security.Authentication;
using WebSocket4Net;

namespace LightStreamSample
{
    class WebSocket4NetSample
    {
        static void Main(string[] args)
        {
            var channelName = "lightning_ticker_BTC_JPY";
            // note: reconnection handling needed.
            var websocket = new WebSocket("wss://ws.lightstream.bitflyer.com/json-rpc", sslProtocols: SslProtocols.Tls12);
            websocket.Opened += (sender, e) =>
            {
                websocket.Send(
                    JsonConvert.SerializeObject(
                        new
                        {
                            method = "subscribe",
                            @params = new { channel = channelName },
                            id = 123,
                        }
                    )
                );
            };
            websocket.MessageReceived += (sender, e) =>
            {
                dynamic data = JObject.Parse(e.Message);
                if (data.id == 123)
                {
                    Console.WriteLine("subscribed!");
                }
                if (data.@params != null)
                {
                    Console.WriteLine(data.@params.channel + " " + data.@params.message);
                }
            };

            websocket.Open();

            Console.ReadKey();
        }
    }
}

 

必要なパッケージを追加インストール

上記のままだとビルドが通らないので、以下のパッケージをインストールする。

Newtonsoft.Json

NuGetパッケージマネージャーの管理画面を表示

Newtonsoft.Jsonを検索しインストール

WebSoket4Net

WebSoket4Netを検索しインストール

RealTime APIの呼び出し

実行方法

以下を参照し、ビルド&実行

BitFlyerAPIを呼んでみる

実行結果

コマンドプロンプトが開き、以下のようにbitFlyerから送られてきたBTCJPY(ビットコインの日本円価格)のデータが次々に表示される。

コメント