关于websocket和tcp通话之间的关联

本文对比了WebSocket与TCP在实现网页实时通信中的异同,指出WebSocket作为应用层协议,是在HTTP基础上进行升级以实现双向通信,而TCP作为传输层协议提供可靠的连接。同时,通过Go的net包与Web框架的实现差异,强调了底层原理的重要性。
摘要由CSDN通过智能技术生成

最近学习到了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编程各种框架、包已经封装好了底层内容,会自动起多个协程分别处理每个请求和通话。

而net包相对来说比较靠近底层。好多东西需要我们自己去实现,就多个请求通话来说,需要我们去监听并循环接入,手动起多个协程去处理。而在封装好的各种web框架中已经帮我们处理好了,从而导致我编写黑窗口聊天室又忽略了这一点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值