go语言接口学习——webscoket

I would that my life remain a tear and a smile.
我宁愿生活里有眼泪也有微笑。

1、websocket 简介

它的名字总让我们跟socket联系在一起,让我们怀疑它的功能类似于socket(套接字),但是,这种猜测是错误的哦。
socket:是一组调用TCP/IP网络的接口,可以理解为灯泡的插座,应用程序插入一个套接字里面,就可以通信啦。
websocket:是应用层协议,功能类似于http协议,都是负责组装数据,再通过tcp/ip协议传输。
那么跟http协议最大的区别就是: 不仅仅是请求-响应的默认,服务端也可以主动推送,而不需要轮询,实现了浏览器与服务器的全双工通信。

2、websocket 原理

http响应模型

websocket响应模型

可以看出,http每一次请求-响应建立一个连接并关闭;而websocket只需要建立一次连接,便可进行多次请求-响应及主动推送,最后关闭连接。

3、go语言实现

在go官方sdk中,并不包含websocket的支持,需要引入第三方包的支持。选择基本就在 x/net/websocketgorilla/websocket 之间,其中gorilla/websocket更为优秀,稳定性更好,故而选择了gorilla/websocket包进行开发。
但是从零开发,又觉得费时费力,便引入了melody框架,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容