| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 关于websocket和tcp通话之间的关联 -> 正文阅读 |
|
[网络协议]关于websocket和tcp通话之间的关联 |
最近学习到了websocket,Beego等知识。 因此看了Beego官方的一个聊天室例子——利用websocket实现的网页版实时会话程序。 此时想起之前一个利用tcp完成的黑窗口聊天室项目。 两者之间貌似相同,都是客户端与服务器之间建立连接一直相互通话,直到连接断开结束通话。(其实这个相同点是搞明白他们的异同之后才想到的)。 两者异同点: 1.tcp属于传输层协议,websocket属于应用层协议(http也属于应用层) 2.两者都可以一次握手连续通话,http是一次请求一次回复即完成一次通话。 3.websocket是为了解决网页实时通话问题而产生的HTML5中新增的协议。 4.websocket和http都是基于tcp协议实现的,websocket利用http协议完成握手并将http升级成websocket协议从而完成握手、实时通信功能。 5.tcp协议是传输层协议,属于流模式面向连接,传输大量数据,比较可靠安全。 到此已经基本可以看出websocket底层其实就是tcp,他们两个都可以通过多协程处理多连接实时传输完成群聊功能。 2021-8-1修改: 今天又拿go的net包去敲了一下黑窗口聊天室,构思的时候发现看似简单拿来直接用的东西,其实底层还是有好多东西没有理解透彻(灯下黑)。 1.web编程习惯了直接用浏览器当客户端,忘却了客户端的存在,以为黑窗口编一个主程序就可以进行通信。其实存在Client和sever端。 2.web编程各种框架、包已经封装好了底层内容,会自动起多个协程分别处理每个请求和通话。 而net包相对来说比较靠近底层。好多东西需要我们自己去实现,就多个请求通话来说,需要我们去循环监听并手动起多个协程去处理。而在封装好的各种web框架中已经帮我们处理好了,从而导致我编写黑窗口聊天室又忽略了这一点。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:20:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |