
网络协议
wyl1st
这个作者很懒,什么都没留下…
展开
-
WebSocket(叁) 生成数据帧
昨天的文章中介绍了WebSocket数据帧的结构和解析。其实对从服务器发送往客户端的数据也是同样的数据帧。但因此觉得这看似和解析数据帧一样简单那就错了。我们需要自己去生成数据帧。而且会遇上和解析时候不同的问题,比如数据帧分片传输的情况。 从服务器发送到客户端的数组帧不需要掩码,这是非常值得庆幸的地方。于是要写出一个生成数据帧的函数并不难//NodeJSfunction encodeDat转载 2014-12-12 12:31:33 · 696 阅读 · 0 评论 -
WebSocket(壹) 握手连接
WebSocket虽然很先进,很好用,但却是个很麻烦的东西。与普通的Web通信机制不同,它本身可以算是一个协议。要使用WebSocket首先得让客户端和服务器建立连接,而且这个连接蛋疼的比TCP那样的传输层协议还复杂,需要通过验证KEY来做握手工作。 这个握手协议使用的是HTTP格式的请求,并再头部分带上一个Sec-WebSocket-Key字段,服务器对这个字段加上一个特定的字符串后做一次转载 2014-12-12 12:23:28 · 688 阅读 · 0 评论 -
WebSocket(肆) 各种操作码
前面的例子都是用了1这个操作码(Opcode)来传输文本的。没错,1这个操作码就是传输文本(UTF-8)的。还用到了在分片过程中把操作码设置为0,0也只是分片时用的。操作码是4位的,取值当然不止这两个,除了指定传输数据类型外还有其它用途的操作码。 规范文档中也提供了一个表格 |Opcode | Meaning | Reference转载 2014-12-12 12:33:28 · 2277 阅读 · 0 评论 -
WebSocket(伍) 断开连接
WebSocket是很民主的,啥都要协商!建立连接时需要握手协议,连断开连接都需要双方共同完成!其实断开连接直接断开TCP连接就可以了,但是这有点暴力。文明点的方法是发个请求,让对方自己断开。客户端要主动断开就必须向服务器发送8这个操作码。 首先是服务器主导断开的情况,最简单的方法是直接把TCP连接断开,这里就不演示了。由于这对客户端来说是个意外断开,WebSocket对象采取应急措施也触发转载 2014-12-12 12:34:33 · 11031 阅读 · 0 评论 -
WebSocket(贰) 解析数据帧
知道了怎么握手只是让客户端和服务器建立连接而已,WebSocket真正麻烦的地方是在数据的传输上!为了环保,它使用了特定格式的数据帧,这个数据帧需要自己去解析(当然也有别人编写好的库可以用)。虽然官方文档描述的很详细,但是看起来还是蛋疼。 当客户端向服务器发送一个数据时服务器收到一个数据帧,比如下面的程序//客户端程序var ws=new WebSocket("ws://127.0.0.转载 2014-12-12 12:17:37 · 2654 阅读 · 0 评论 -
HTTP状态码
状态码为客户端提供了一种理解事务处理结果的便捷方式。原创 2016-01-19 17:50:45 · 469 阅读 · 0 评论