故障现象:python flask-socketIO无法正常工作,并报以下信息:
The client is using an unsupported version of the Socket.IO or Engine.IO protocols (further occurrences of this error will be logged with level INFO)
218.104.71.43 - - [17/Dec/2020 02:18:09] "GET /socket.io/?EIO=3&transport=polling&t=1608142688486-0 HTTP/1.1" 400 219 0.000514
更具提示信息,应该是flask-socketIO前后端版本不一致导致的。flask-socketIO版本兼容性列表如下:
JavaScript Socket.IO version | Socket.IO protocol revision | Engine.IO protocol revision | Flask-SocketIO version | python-socketio version | python-engineio version |
---|---|---|---|---|---|
0.9.x | 1, 2 | 1, 2 | Not supported | Not supported | Not supported |
1.x and 2.x | 3, 4 | 3 | 4.x | 4.x | 3.x |
3.x | 5 | 4 | 5.x | 5.x | 4.x |
JavaScript Socket.IO的版本必须和Socket.IO protocol 、Engine.IO protocol、Flask-SocketIO、python-socketio、python-engineio 版本对应才能进行通讯。
2.x版本
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.1/socket.io.js" integrity="sha512-AcZyhRP/tbAEsXCCGlziPun5iFvcSUpEz2jKkx0blkYKbxU81F+iq8FURwPn1sYFeksJ+sDDrI5XujsqSobWdQ==" crossorigin="anonymous"></script>
3.x版本
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js" integrity="sha512-aMGMvNYu8Ue4G+fHa359jcPb1u+ytAF+P2SCb+PxrjCdO3n3ZTxJ30zuH39rimUggmTwmh2u7wvQsDTHESnmfQ==" crossorigin="anonymous"></script>