現象
PythonのFlask socketioを使って、Javascriptとデータのやりとりをしようとしたところ、以下のエラーが発生:
The client is using an unsupported version of the Socket.IO or Engine.IO protocols
確認
エラーが発生した環境の各モジュールバージョン
<Python側>
Flask-SocketIO==5.3.6
python-engineio==4.8.1
python-socketio==5.10.0
<Javascript側>
Socket.IO v2.2.0
<バージョン互換性の確認>
https://python-socketio.readthedocs.io/en/latest/intro.html
原因
過去のコードをそのまま流用したので、JavascriptのSocket.IOとPython環境のバージョンが合ってなかっただけでした・・・。
対応方法
2024年1月現在、Socket.IOのリリース済みバージョンを調べると( https://socket.io/docs/v4/client-installation/ ) 最新版は4.7.4なので、最新版を使用するようにindex.htmlのscriptを変更:
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.7.4/socket.io.min.js"></script>
(使うのはこれじゃなくてもいいのかな。
Javascript超初心者なので何を基準に選べばいいのか分かりません。)
無事「emit」と「on」のやりとりを確認できました。