为什么Flask-SocketIO具有`http`协议而不是`ws`协议?

时间:2018-08-14 19:27:24

标签: python flask websocket flask-socketio

我正在尝试使用以下Flask扩展来实现WebSocket服务器: https://flask-socketio.readthedocs.io/en/latest/

我看到客户端正在像这样使用socketio:

<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://)?

1 个答案:

答案 0 :(得分:1)

Socket.IO感兴趣的协议的唯一部分是s部分,即http(s), ws(s),即是否应该加密连接。除此之外,协议被忽略,并且Socket.IO尝试使用多种不同的协议(websocket,通过http进行长轮询等)来建立连接。取决于服务器支持什么。