摘要:
cowboy是一个小型、快速,模块化,采用Erlang开发的HTTP服务器。改版之后的cowboy分为两大application,将TCP拆分出来,成了ranch application,cowboy成了基于TCP(ranch)的一个cowboy_protocol(http实现)。不仅如此,cowboy还给出了rest-api、websocket、chunked、long-polling的支持,相当之完美!总体来讲cowboy的特点在于分层架构及模块化设计,即把网络层的套接字管理和应用层协议实现,以及对消息的处理,这三层几乎完全解藕。 阅读全文
摘要:
hotwheels源码量虽少,作为Erlang开发的tcp服务器,麻雀虽小五脏俱全,足够强悍。 阅读全文
摘要:
轮询(Polling)是指不管服务器端有没有更新,客户端(通常是指浏览器)都定时的发送请求进行查询;
推送或叫长连接(Long-Polling)的服务其客户端是不做轮询的,客户端在发起一次请求后立即挂起,一直到服务器端有更新的时候,服务器才会主动推送信息到客户端。 阅读全文
摘要:
erlang应用以后台方式启动带参数-detached即可实现。
控制detached模式启动的erlang虚拟机的方法:1、通过远程shell JCL登录;2、使用erl的-remsh参数 阅读全文
摘要:
HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。 阅读全文
摘要:
ASCII字符集&编码、GBXXXX字符集&编码、BIG5字符集&编码、Unicode字符集&UTF编码(UTF-32/UTF-16/UTF-8) 阅读全文
摘要:
协议包含通讯协议和数据格式。
通讯协议目前常用的是:HTTP 和TCP。
数据格式有文本格式(如xml,json或自定义),二进制格式(如protobuf,thrift或自定义)。
目前大部分游戏是采用自定义二进制协议。其大致的样子如下: [2字节数据长度][2字节消息类型,具体的消息体]。 阅读全文
摘要:
WebSocket握手协议1、客户端握手请求GET /WebSocket/LiveVideo HTTP/1.1\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nHost: localhost:8080\r\n Origin: http://127.0.0.1\r\nSec-WebSocket-Key1: 23 asdfJKj,asdjk\r\nSec-WebSocket-Key2: dssariuvl,arssdd\r\nr\n8个字节Sec_WebSocket-Key3值 (没有键名)2、服务端握手回复HTTP/1.1 101 Web Sock 阅读全文
摘要:
websocket草案10,链接地址为:http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10,1、握手的标准:1)、最老的websocket草案标准中是没有安全key,草案7.5、7.6中有两个安全key,而现在的草案10中只有一个安全key,即将7.5、7.6中http头中的"Sec-WebSocket-Key1"与"Sec-WebSocket-Key2"合并为了一个"Sec-WebSocket-Key"2)、把http头中Upgrade的值由" 阅读全文
摘要:
目录:1、erlang:send_after和erlang:start_timer的使用解释;2、erlang的timer和实现机制;3、erlang定时器的强度测试 阅读全文
摘要:
当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域来确定报文体长度。 此时,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。chunked编码的基本方法是将大块数据分解成多块小数据,每块都可以自指定长度,其具体格式见本文。 阅读全文