kabucom / kabusapi

kabuステーションAPI ポータル
https://kabucom.github.io/kabusapi/ptal/
MIT License
299 stars 45 forks source link

【質問】WSLからKabuステに接続できる仕様ですか? #645

Open hysdsk opened 1 year ago

hysdsk commented 1 year ago

■目的・背景 Windows上のWSLからKabuステAPIを使用したいです。

RESTの場合は以下の方法で接続が可能でした。 https://github.com/kabucom/kabusapi/issues/623

PUSHの場合は以下のエラーが発生して接続ができません。

Task exception was never retrieved
future: <Task finished name='Task-1' coro=<EntitySpec.__call__.<locals>.stream() done, defined at /home/daishaya/projects/python-kabusapi/kabusapi/websocket.py:15> exception=InvalidStatusCode(400, Headers([('Content-Type', 'text/html; charset=us-ascii'), ('Server', 'Microsoft-HTTPAPI/2.0'), ('Date', 'Mon, 06 Mar 2023 00:13:55 GMT'), ('Connection', 'close'), ('Content-Length', '339')]))>
Traceback (most recent call last):
  File "/home/daishaya/projects/python-kabusapi/kabusapi/websocket.py", line 16, in stream
    async with websockets.connect(self.uri,
  File "/home/daishaya/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 642, in __aenter__
    return await self
  File "/home/daishaya/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 659, in __await_impl_timeout__
    return await asyncio.wait_for(self.__await_impl__(), self.open_timeout)
  File "/usr/lib/python3.10/asyncio/tasks.py", line 445, in wait_for
    return fut.result()
  File "/home/daishaya/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 666, in __await_impl__
    await protocol.handshake(
  File "/home/daishaya/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 332, in handshake
    raise InvalidStatusCode(status_code, response_headers)
websockets.exceptions.InvalidStatusCode: server rejected WebSocket connection: HTTP 400

上記のエラーがWSLからの接続が理由かわかりませんが、切り分けのために質問させてください。

■質問 WSLからは接続できない仕様となっていますでしょうか?そういった仕様の場合の理由などもご教示いただけると幸いです。

yasuyuki-nakazawa commented 1 year ago

カブステが稼働している端末とWSLが稼働している端末は同一端末という認識でよろしいでしょうか RESTが成功しているということで、同じと想像しています。 Socket接続エラーですね。ご質問いただいている環境下で稼働させている実績がないですが、想定原因をお出しできるか内部に持ち帰ってみます。

hysdsk commented 1 year ago

@yasuyuki-nakazawa

同一端末という認識でよろしいでしょうか

Kabuステが稼働しているWindowsとWSLのホストのWindowsは同一端末でございます。本件で失敗したコードをWindows上で実行したところ、PUSHの受信に成功しました。ですので恐らくWSL上からホストのWindowsのポート接続に何かしらの制限がかかっていると思いました。

想定原因をお出しできるか内部に持ち帰ってみます。

よろしくお願いいたします。RESTと同じように、制限の解除方法などございましたら幸いです。

hysdsk commented 8 months ago

@yasuyuki-nakazawa こちら、その後いかがでしょうか?

hori-ryota commented 5 months ago

横槍ですみません、

RESTの場合は以下の方法で接続が可能でした。

623

とありますがRESTはDockerで動かしていてWSL上でのコード実行ではなかったりしますか? もしそうであればRESTもWSL上での疎通は確認できておらず、単にWSL 2からホストのWindowsへの接続ができていないだけかもしれないなと思いまして

enasu commented 5 months ago

ご回答ありがとうございます。

RESTはうまくいっています。

那須 栄治

2024年5月22日(水) 23:14 hori-ryota @.***>:

横槍ですみません、

RESTの場合は以下の方法で接続が可能でした。

623 https://github.com/kabucom/kabusapi/issues/623

とありますがRESTはDockerで動かしていてWSL上でのコード実行ではなかったりしますか? もしそうであればRESTもWSL上での疎通は確認できておらず、単にWSL 2からホストのWindowsへの接続ができていないだけかもしれないなと思いまして

— Reply to this email directly, view it on GitHub https://github.com/kabucom/kabusapi/issues/645#issuecomment-2124911363, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ2TMPPX2T2PGJIBZXJKJALZDSR4HAVCNFSM6AAAAAAVQPNXAOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRUHEYTCMZWGM . You are receiving this because you are subscribed to this thread.Message ID: @.***>

hysdsk commented 5 months ago

@hori-ryota

WSL上でのコード実行ではなかったりしますか?

WSLのUbuntu上でcurlを実行して確認したので、そこの疎通は確認できていると思います。