python - 为什么 Flask-SocketIO 有 `http` 协议而不是 `ws`?
问题描述
我试图使用这个 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://
)?
解决方案
Socket.IO 唯一感兴趣的协议部分是该s
部分,即http(s), ws(s)
连接是否应该被加密。除了协议被忽略并且 Socket.IO 尝试多种不同的协议(websockets、http 上的长轮询等)以建立连接。取决于服务器支持什么。
推荐阅读
- java - 它说:“错误:不是声明”,我不知道该怎么办
- php - PHP 的 pg_fetch_assoc() 是否使用迭代器/游标?
- intellij-idea - Intellij 未检测到 build.gradle 中包含的 mariadb 连接器
- json - Postman - 断言 JSON 响应中有重复部分的位置
- qt - 如何在 TableView 中的选定项目上显示上下文菜单
- sql - 寻找只打板球的球员?
- vim - 带有 Ultisnips 和括号匹配(自动对)的 Vim 映射到相同的键
- typescript - Vue + Typescript vue-router 和参数类型
- django - 如何让 2 个域与 Django 具有相同的代码库?
- r - 将连续变量更改为分类变量