天天看点

40行代码聊天室

今天看到一个非常棒的及时通信的项目,分享给大家

服务端:lhttp

40行代码聊天室: demo

基本上写一个聊天室服务端一行代码不用写,客户端写极少量的代码就可以了。

比较值得一提的是作者的想法非常好,通信协议有点类似http协议,这样可扩展性就比较好,整个服务端都可以轻松定制的,作者实现和一些非常重要的首部过滤器,如订阅和发布。

如果说http协议是定位资源的,那lhttp最大的用处就是传输命令。是基于websocket协议的。

最让我喜欢的是订阅与发布,如:

通过websocket发送这样一条字符串:

"LHTTP/1.0 command\r\nsubscribe:channel_test\r\n\r\n"

就代表这个链接订阅了channel_test通道,假设又有其他客户端发送了这样一条字符串:

"LHTTP/1.0 command\r\npublish:channel_test\r\n\r\nhello"

这样订阅都就能收到这条消息,消息体是hello。

这里的command和http的url很像,服务端可以根据命令注册处理器处理这个命令。客户端也可以类似处理,如命令可以是 chat(聊天) enter_group(加入讨论组) add_friend(添加好友)等等,非常灵活。

还支持一些代理等特性,我就不多说了,大家自己去研究共同学习,有个交流群:171358414