WebSocketプロトコル

契約個数の範囲内で同種の契約を任意に切り替えることができる。サポートされる契約照会
鍵情報と接続診断ログ:ここのクエリ

要求接続

コマンド#コマンド#
呼び出し先:ws://map.fxnapi.com:10004/connect/{token}
コマンド#コマンド#:connect
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
tokenstringyesエンコード
Command Sample
ws.connect ws://map.fxnapi.com:10004/connect/(authcode)
Response:
Response Sample
{"Cmd":"connect","Code":0,"Msg":"connect xxx"}
に注意:接続数が許可接続数を超えると、前の接続はシステムによって閉じられます。
に注意:接続に失敗した場合はログを作成してください。問題の診断に便利です。重複した複数回の接続推奨間隔は10秒以上で、重複接続システムは異常を認定し、ブロックする可能性があります。
に注意:システム/ネットワークが複雑なため、接続の中断が避けられないため、「ハートビートを送信しても正しいリターンがない」場合に再接続を実行することをお勧めします。

契約または品目の購読

契約または品目の購読,単一コマンドで最大100,繰り返し実行可能
コマンド#コマンド#
呼び出し先:/sub/{symbols}
コマンド#コマンド#:sub
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
symbolsstringyes完全コード,カンマ間隔 例えばBTC,EURJPY,一度に最大100個のコード, 参照品種契約コード情報照会
先物のグループ購読をサポート,例えば sub/CFFEXIC* 代表購読CFFEXIC,CFFEXIC1909,CFFEXIC2002...
Command Sample
ws.send /sub/EURJPY,SH600128
Response:
Response Sample
{"Cmd":"sub","Code":0,"Msg":"sub:xxx"}
Stream:購読に成功した後,システムは、サービス側からメッセージを受信する
の名前をあげるデータ型コメント
CmdstringCmd = rm
...anyJson データ#データ#参照
Stream Sample
{"Cmd":"rm","M":"HBG","S":"BTC","C":"","Tick":1678846800,"P":24886.85,"B1":24886.85,"B1V":9,"S1":24886.86,"S1V":18,"O":24343.9,"H":26346.54,"L":24034.91,"YC":24343.9,"A":291445011.97,"V":11602.35,"B2":24886.84,"B2V":8,"S2":24887.69,"S2V":16,"B3":24884.36,"B3V":1,"S3":24889.31,"S3V":97,"B4":24884.35,"B4V":8,"S4":24889.32,"S4V":8,"B5":24883.12,"B5V":4,"S5":24889.5,"S5V":29,"HS":0.0616,"ZF":2.230,"LS":468619684142.20,"ZS":468619684142.20,"VF":9.496,"NV":0.06,"Z":18830012.00,"Z2":18830012.00}
に注意:分類を購読し、その分類の下の品種を購読した場合、購読品種は成功しません
に注意:サブスクリプション数が制限個数を超えると、新規サブスクリプションの品種契約が最初にサブスクリプションされた品種契約を置換します。
に注意:購読に失敗した場合はログを作成し、問題の診断を容易にしてください。複数回の購読コマンドを繰り返す場合は5秒間隔で実行することをお勧めします。または一括購読を使用する必要があります。

指定された市場の購読

市場購読の指定,一度に複数可
コマンド#コマンド#
呼び出し先:/submkt/{markets}
コマンド#コマンド#:submkt
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
marketsstringyes完全な市場コード,カンマ区切り
Command Sample
ws.send /submkt/TAI,NYMEX
Response:
Response Sample
{"Cmd":"submkt","Code":0,"Msg":"submkt:xxx"}
Stream:購読に成功した後,システムは、サービス側からメッセージを受信する
の名前をあげるデータ型コメント
CmdstringCmd = rm
...anyJson データ#データ#参照
Stream Sample
{"Cmd":"rm","M":"HBG","S":"BTC","C":"","Tick":1678846800,"P":24886.85,"B1":24886.85,"B1V":9,"S1":24886.86,"S1V":18,"O":24343.9,"H":26346.54,"L":24034.91,"YC":24343.9,"A":291445011.97,"V":11602.35,"B2":24886.84,"B2V":8,"S2":24887.69,"S2V":16,"B3":24884.36,"B3V":1,"S3":24889.31,"S3V":97,"B4":24884.35,"B4V":8,"S4":24889.32,"S4V":8,"B5":24883.12,"B5V":4,"S5":24889.5,"S5V":29,"HS":0.0616,"ZF":2.230,"LS":468619684142.20,"ZS":468619684142.20,"VF":9.496,"NV":0.06,"Z":18830012.00,"Z2":18830012.00}
に注意:購読に失敗した場合はログを作成し、問題の診断を容易にしてください。複数回の購読コマンドを繰り返す場合は5秒間隔で実行することをお勧めします。または一括購読を使用する必要があります。

分類の購読

分類購読,一度に複数可
コマンド#コマンド#
呼び出し先:/subrout/{routs}
コマンド#コマンド#:subrout
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
routsstringyes完全な分類コード,カンマ区切り
Command Sample
ws.send /subrout/JPST,GBFSB
Response:
Response Sample
{"Cmd":"subrout","Code":0,"Msg":"subrout:xxx"}
Stream:購読に成功した後,システムは、サービス側からメッセージを受信する
の名前をあげるデータ型コメント
CmdstringCmd = rm
...anyJson データ#データ#参照
Stream Sample
{"Cmd":"rm","M":"HBG","S":"BTC","C":"","Tick":1678846800,"P":24886.85,"B1":24886.85,"B1V":9,"S1":24886.86,"S1V":18,"O":24343.9,"H":26346.54,"L":24034.91,"YC":24343.9,"A":291445011.97,"V":11602.35,"B2":24886.84,"B2V":8,"S2":24887.69,"S2V":16,"B3":24884.36,"B3V":1,"S3":24889.31,"S3V":97,"B4":24884.35,"B4V":8,"S4":24889.32,"S4V":8,"B5":24883.12,"B5V":4,"S5":24889.5,"S5V":29,"HS":0.0616,"ZF":2.230,"LS":468619684142.20,"ZS":468619684142.20,"VF":9.496,"NV":0.06,"Z":18830012.00,"Z2":18830012.00}
に注意:購読に失敗した場合はログを作成し、問題の診断を容易にしてください。複数回の購読コマンドを繰り返す場合は5秒間隔で実行することをお勧めします。または一括購読を使用する必要があります。

購読解除

購読解除,複数可
コマンド#コマンド#
呼び出し先:/unsub/{symbols}
コマンド#コマンド#:unsub
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
symbolsstringyes完全契約コードまたは市場コード,カンマ区切り 例えばBTC,EURJPY,CNIF, 参照品種契約コード情報照会
Command Sample
ws.send /unsub/EURJPY,SH600128
Response:
Response Sample
{"Cmd":"unsub","Code":0,"Msg":"unsub:xxx"}

受信フィールドの設定

オプション機能。指定しない場合はデフォルトフィールドを転送する受信フィールドを指定します(デフォルトフィールドはすべてではありません),指定後は指定されたフィールドのみを返す
コマンド#コマンド#
呼び出し先:/fields/{fields}
コマンド#コマンド#:fields
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
fieldsstringyesフィールド,カンマ区切り 例えばZ,Z2,TS,H1,参照してください 相場実体構造の参考
Command Sample
ws.send /fields/P,Z,Z2,TS,H1,JS
Response:
Response Sample
{"Cmd":"fields","Code":0,"Msg":"fields:xxx"}

要求k線

一次品種契約のある周期の最も近いk線を要求し、一次データを返す,最大25(デフォルト),制限頻度は毎分(購読個数*8、最大300)回以内。*購読中の契約のみを要求できるk線
連続したK線を得る:各周期k線を継続的に要求し、更新ローカルを記憶することで、連続した履歴k線データを得ることができる。例:5分周期のk線データは5分間隔で最も近いものが生成され、5分ごとに取得を要求すればよい。このように10分周期のk線データは10分間隔で最も近く生成され、10分に1回取得を要求すればよい...
詳細な履歴はhttpリクエストで取得してください
コマンド#コマンド#
呼び出し先:/reqk/{symbol},{period},{num}
コマンド#コマンド#:reqk
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
symbolstringyes完全品種契約コード, 参照品種契約コード情報照会
periodstringyesサイクル 1M,3M,5M,10M,15M,30M,1H,2H,4H,D
numstringyes1~25~90~180~365~730
Command Sample
ws.send /reqk/BTC,1M,10
Response:サブスクリプションに成功すると、システムはサービス側から1回限りのメッセージを受信し
の名前をあげるデータ型コメント
CmdstringCmd = reqk-{symbol}-{period}
CodestringCode>=0成功を表す
MsgstringTick,Open,High,Low,Close,Vol (データ間のカンマ区切り)
Response Sample
{"Cmd":"reqk-BTC-1M","Code":0,"Msg":"1582424400,9664.9,9664.9,9664.8,9664.8,1.12;1582424340,9664.9,9665,9661.8,9664.9,26.93"}
に注意:同じコマンド(パラメータを含む)を繰り返し実行するには15秒間隔で実行する必要があり、サブスクリプション中の契約(つまり、subが成功した契約を実行した契約)のk線のみを要求することができます

要求リアルタイム相場

契約のリアルタイム相場を1回指定し、1回限りのデータを戻し、制限頻度は毎分5回以内。*購読中の契約の相場のみ請求できます
一部のデータは更新が遅く、プッシュ頻度が低いため、この機能は補足として、タイムリーに積極的に取得することができます
コマンド#コマンド#
呼び出し先:/req/{symbol}
コマンド#コマンド#:req
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
symbolsstringyes完全品種コード,複数のカンマ区切り, 参照品種契約コード情報照会
Command Sample
ws.send /req/BTC,EURJPY
Response:サブスクリプションに成功すると、システムはサービス側から1回限りのメッセージを受信し
の名前をあげるデータ型コメント
CmdstringCmd = rm
...anyJson データ#データ#参照
Response Sample
{"Cmd":"rm","M":"HBG","S":"BTC","C":"","Tick":1678846800,"P":24886.85,"B1":24886.85,"B1V":9,"S1":24886.86,"S1V":18,"O":24343.9,"H":26346.54,"L":24034.91,"YC":24343.9,"A":291445011.97,"V":11602.35,"B2":24886.84,"B2V":8,"S2":24887.69,"S2V":16,"B3":24884.36,"B3V":1,"S3":24889.31,"S3V":97,"B4":24884.35,"B4V":8,"S4":24889.32,"S4V":8,"B5":24883.12,"B5V":4,"S5":24889.5,"S5V":29,"HS":0.0616,"ZF":2.230,"LS":468619684142.20,"ZS":468619684142.20,"VF":9.496,"NV":0.06,"Z":18830012.00,"Z2":18830012.00}
に注意:サブスクリプション中の契約(つまりサブスクリプションが成功した契約が実行されている)を請求するしかない相場

送信ハートビート維持接続

非常に重要!サーバ側は60秒以内にクライアントに接続するハートビートコマンドを受信せず、クライアント接続を中断する
ハートビートコマンドはオプションで2つの方法で送信されます
方式1.タイミング15-60秒ごとにサーバ側にハートビートコマンドを送信する
方式2.サービス側情報を受信した場合{"Cmd":"heartbeat","Msg":"ping"},サービス側にハートビートコマンドを送信する
コマンド#コマンド#
呼び出し先:/ping/ok
コマンド#コマンド#:ping
コマンド#コマンド#パラメータ:
の名前をあげるデータ型必須コメント
Command Sample
ws.send /ping/ok
Response:
Response Sample
{"Cmd":"ping","Code":0,"Msg":"ok"}
2回連続でハートビートを送信しても、サービス側から正しいメッセージが返されていない場合は、データ接続が中断されていると考えられます

再接続メカニズム、再購読

1非常に重要!再接続:システム/ネットワークが複雑なため、接続の中断は避けられない,15秒ごとにハートビートを送信することをお勧めします。2回連続してハートビートが正しく返されていないか、返されていない場合は、再接続を実行します、参照 "connect"
2非常に重要!再購読:クライアントがサブスクリプション品目契約のデータ受信がないことを監視している場合、正しくサブスクリプションされているかどうかを確認できない場合は、その品目契約を再サブスクリプションすることができます、参照 "sub" "submkt"
3、頻繁に再接続する必要はありません。1分間に10回以上再接続すると、システムはその符号化またはIPからの接続を一時的にブロックします
4、確立された接続数は許可された最大接続数を超えてはならず、それを超えると接続が中断したりデータが異常になったりする可能性があります
5、同じコマンドの送信間隔は5秒以上を推奨

データ受信処理

非常に重要!データ受信処理:受信したデータは直接キューに入ったり非同期論理処理をしたりして、同期のための時間のかかる処理論理をしないで、受信データの詰まりを回避します。

コマンド出力とエラーコード

結構
json: {"Cmd":"要求元","Code":0,"Msg":""}
の名前をあげるデータ型コメント
Cmdstring要求元
CodestringCode >= 0呼び出し成功
Msgstringエラー情報を
説明
Code >= 0,呼び出し成功
Code <0 呼び出しに失敗したことを示す,エラー情報Msgを出力する
Cmd,要求元

データ出力とテストキー

代替デバッグコーディング
正式にコード化された後に「DEV」の3文字を加えると、デバッグコードになります。(デバッグ符号化は1接続点のみ許可、BTC購読のみ許可、プッシュ周波数は毎秒)
プッシュ出力
の名前をあげるデータ型コメント
Cmdstring出力データ型は次のとおりです。 rm
...string任意のフィールド