LoginSignup
0
0

More than 5 years have passed since last update.

python websocket-client のdecode errorの対策

Posted at

python で websocket を使った通信をする場合

僕のように某生配信プラットフォームのwebsocketを取ってこようと思うと、ここのを使うのが一般的だと思います。
https://github.com/websocket-client/websocket-client

あまり使っている人がおらず、正直、コミュニティは活発っぽくないです。
バージョンによって挙動が違う(らしい)です。
ですので、ぼくは現行動いているバージョンから変えるつもりはありません。

僕は
pip install websocket-client
でインストールしました。

某生配信プラットフォームは、utf-8以外の文字も使えるっぽいので、特定のユーザーが現れると、デコードエラーでプログラムが落ちます。

当初は非常に不思議で、まったく原因がわからなかったのですが、特定の配信者のところに現れる特定のユーザー名が原因でした。
この現象はchromeのDeveloper Toolでwebsocketの通信を眺めていても、特定ユーザーが何かするたびに落ちて、再接続してました。
おそらく、配信プラットフォーム側がutf-8以外の文字列もOKにしていることが原因だと思います。

ライブラリのソースコードを見ていると、skip_utf8_validation=False というのがあるのですが、これをTrueにしても落ちます。

ですので、僕は、ライブラリのソースコードのdecodeとencode部分をすべて、ignoreをつけて力業で対処しています。

ライブラリの原因箇所の特定や、英語での提案をする元気は無いので誰かやってください。
全く同じissue が こことかstackoverflowにもあがってるのですが、おそらく開発者側も再現性がないので直せないのだと思います。
たぶん日本独特の問題なのかな?

こんな知識誰か役に立つんですかね?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0