问题描述
我正在尝试在我的网页中实现flask-socketIO,所以我首先制作了一个测试脚本以更好地了解它是如何工作的。
每当我将脚本运行到终端时,我都会收到此错误:
WARNING in __init__: WebSocket transport not available. Install gevent-websocket for improved performance.
然后我继续在终端中输入“conda install gevent-websocket”。 在我重新运行代码之前,一切似乎都很顺利。现在当我运行代码时什么也没有出现,就好像正在加载一样。
解决方法
主要内容:
if __name__ == "__main__":
import eventlet
eventlet.monkey_patch()
import eventlet.wsgi
eventlet.wsgi.server(eventlet.listen(('',80)),app,log=devnull)
flask-socketio
socketio = SocketIO(app,logger=True,engineio_logger=True,policy_server=False,async_mode='eventlet',manage_session=False,cors_allowed_origins="*")
import eventlet
eventlet.monkey_patch()
要求:
flask_socketio==5.0.1
python-engineio==4.0.0
python-socketio==5.0.4
正确的浏览器api:
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.0.4/socket.io.js" crossorigin="anonymous"></script>
Javascript:
const socket = io({
path: '/'+window.location.pathname.split("/")[1]+'/socket.io/',transports: [ 'websocket' ] // or [ 'websocket','polling' ]
});
socket.on('test',function(data) {
console.log(data);
});