今天看到一個非常棒的及時通信的項目,分享給大家
服務端: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