BitBankのリアルタイムAPIの取得方法

環境は.net6.0,C#
ビットコインのマーケット、BitBankのリアルタイムAPIで板情報(最新・差分)を取得したい。
が、私がよく使うJSON-RPCではなく、Soket.IOとのこと。
Soket.IO・・・。
どうすれば?

Google先生に聞いてみると、ふむふむ。SocketIoClientDotNetを使えばよいと。
SocketIoClientDotNetを調べてみる。
DotnetFrameworkだと・・・

よし、他のを探そう。
で、見つかったのは、Socket.Io.Client.Core
とりあえず、.NETStandard2.1って書いてあるから、大丈夫だろう。

NuGetで入れて、サンプルコードを書いてみたところ、無事に購読できました。

using Socket.Io.Client.Core;

using var client = new SocketIoClient();

client.Events.OnOpen.Subscribe((_) =>
{
    Console.WriteLine("Socket has been opened");
});

var subscription = client.Events.OnPacket.Subscribe(packet =>
{
    // とりあえず、ログを出しておく
    Console.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss.fff} {packet.Data}");
}); 

await client.OpenAsync(new Uri("wss://stream.bitbank.cc"), null);

await Task.Delay(TimeSpan.FromSeconds(5));

client.Emit("join-room", "depth_diff_btc_jpy");

Console.ReadLine();

結果がstringで返ってくるとか、とくにパフォーマンス面で気になる点はあったりしますが、そこらのパフォーマンスの話は後日の課題ということで。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です