python - 为什么 Flask-SocketIO 有 `http` 协议(protocol)而不是 `ws` ?

标签 python flask websocket flask-socketio

我试图使用此 Flask 扩展来实现 WebSocket 服务器: https://flask-socketio.readthedocs.io/en/latest/

我看到客户端正在使用这样的套接字:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
    var socket = io.connect('http://' + document.domain + ':' + location.port);
    socket.on('connect', function() {
        socket.emit('my event', {data: 'I\'m connected!'});
    });
</script>

为什么它使用 http:// 而它应该是 WebSocket 服务器(使用 ws://)?

最佳答案

Socket.IO 唯一感兴趣的协议(protocol)部分是 s 部分,即 http(s), ws(s),即是否连接应该是加密的。除此之外,协议(protocol)被忽略,Socket.IO 会尝试多种不同的协议(protocol)(websockets、http 长轮询等)来建立连接。取决于服务器支持的内容。

关于python - 为什么 Flask-SocketIO 有 `http` 协议(protocol)而不是 `ws` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51848526/

相关文章:

python - Pandas Dataframe 在网页上显示

python - 将字段标签传递给 WTForms __init__

使用 Socket.IO 到 nodeJS 服务器的 Python 客户端

java - Websocket Java 服务器。不发送消息也不接收

javascript - 抑制 "WebSocket connection to ' xyz' 失败”

python - 在python中使用Sed通过subprocess.call进行文件替换

python - ValueError : Error when checking target: expected time_distributed_7 to have 4 dimensions, 但得到形状为 (500, 18, 64) 的数组

python - 如何手动反序列化 Flask-0.10 中的 session cookie?

Python scipy.numpy.convolve 和 scipy.signal.fftconvolve 不同的结果

python - 将列表元素传递给 for 循环