Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KuCoinで予期せぬウェブソケットエンドポイントが発行される #199

Open
ko0hi opened this issue Nov 16, 2022 · 1 comment

Comments

@ko0hi
Copy link
Contributor

ko0hi commented Nov 16, 2022

問題

動的にソケットのエンドポイントを定めるKuCoinの実装において、ws-api.kucoin.comをデフォルトエンドポイントとしてハードコードしているが、異なるエンドポイントが割り当てられるのを確認しました。
Heartbeatが送られず接続が切断されてしまいます。

状況は以下の通りです。

  • 同じネットワーク・同じソースコードの別マシンにおいて起きた
  • ws-api-spot-kucoin.comが発行された
  • ずっと起きていたわけではない(接続が確立していたので最初のうちはws-api-kucoin.comが発行されていたはず)

対策

#185 (comment)

では heartbeat=10.0がデフォルトで設定されているとのことでしたがこちらそうなっていますでしょうか? pybottersのソースコードにそのような設定を見つけられず、aiohttpを辿っても見つけられませんでした(ただの見逃しでしたらすみません)。

ws-api-kucoin.comに対してHertbeatを送るよう修正したところ切断されなくなったので、やはりHeartbeatが届いていないのが原因のように思えます。

@MtkN1
Copy link
Member

MtkN1 commented Nov 16, 2022

では heartbeat=10.0がデフォルトで設定されているとのことでしたがこちらそうなっていますでしょうか? pybottersのソースコードにそのような設定を見つけられず、aiohttpを辿っても見つけられませんでした(ただの見逃しでしたらすみません)。

申し訳ございません

完全なる勘違い

でした。 Discord での議論だけで満足してしまったのか、修正コードを Stash してどこか行ってしまったのか、兎に角 main ブランチには反映されていませんでした。

KuCoin 異なるエンドポイントについて

情報共有ありがとうございます。 内容把握しました。
heartbeat を設定すれば切断はされないものの、動的エンドポイントの以上は (取引所指定の) PING 自動設定は現状解決できなさそうですね。

ダイナミックエンドポイントに対する根本解決としては

client.ws_connect(store.endpoint, onopen=kucoin_ping)

といった感じでユーザー側で PING 関数を指定できるようにすることになりますが、この対応は現在の pybotters.Client ではなく experimental ブランチでのバージョンになりそうです。。

-> 一先ず heartbeat をデフォルトで設定します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants