问这个问题的背景是,学校的小学期项目是用C++实现一套小型的即时通讯软件,包括服务器端和客户端。一般来说想到的解决方案都是Socket异步通信、基于XMPP协议等等,但我没有C++写网络的经验,只会一些PHP写HTTP服务器端,时间上也比较紧迫,所以想到了这样的几个问题:
- 即时通信软件是否可以采用Web应用的模式,即客户端和服务器使用HTTP请求通信?
- Socket是对传输层的TCP/IP协议的封装,而HTTP则属于应用层,那么“使用Socket编写网络编程”和“使用HTTP请求进行通信”这两者有什么区别和联系?
- C++编写Web服务器实现API,有没有轻量级的实现?
1 可以 相關技術 ajax comet websocket
2 資源佔用不同 即時性不同
3 這個問題與你前面的問題衝突 到底是想問PHP的還是C++的
伺服器可以使用C++,增加web socket服務,那麼客戶端就可以使用瀏覽器,用javascript+websocket(html5)實作
web 下 ajax最容易實現。
給出一個比較超前的解決方案,作為參考:
node-webkit
+Socket.io
+ Web前端綜合技術關於
node-webkit
的介紹,可以看這裡做im的方案一般有兩種:自研or使用第三方sdk
一、首先我們說下自研,自研的坑主要有兩個
1、成本高
2、穩定性差
im這塊做起來不難,幾個工程師花個十天半個月就能做出一套系統來。但做過IM 的工程師通常不會去做,因為im拾是個坑,功能不全面,而且很容易出bug,例如訊息到達不及時、訊息記錄看不到,尤其是用戶量起來後,問題會更多,這個坑很難填完。
自己做im穩定性差,除非經驗非常豐富。這個感悟是我的兩個經驗得出的感悟:
1)我曾經做過產品經理,參與到了一個平台性的產品開發,初期這個產品是團隊自研的,功能本身不全面,後來用戶越來越多,im這塊問題也原來越多,而且影響到了整個web端和行動產品的開發進程
2)我後來的工作就是為開發者提供im服務,有很多開發者聯繫到我們說本來自己做的im,做好之後問題很多。
二、利益相關
我和我的團隊提供開發者im的sdk、api介面、demo原始碼,我們的主要優勢有:
1、穩定性
做過im的同學應該都知道,im做不好的話是個填不完的坑,尤其是用戶量起來後,收發訊息延遲等等各種問題都出來了,那我們是怎麼保障穩定性的呢?
1)採用訊息必達策略,已成功發送1000億條訊息;
2)即使同時在線人數颯升,自動水平擴展可以應接海量並發;
3)選用BGP機房、全球多點覆蓋
2、安全保障
1)不切入使用者係統,選擇性託管帳號系統;
2)採用私人二進位加密協定、RSA+串流加密傳輸,資料檔案多重備份確保資料安全;
3)IT資訊安全系統認證
3、服務
我們在開發同學接觸到雲信開始就提供7*24小時1對1的技術支持,有任何問題都可以在任何時間找到我們,並給予解決方案,這樣一來開發同學的效率也高,產品開發進度也快
取得sdk包 api介面 demo源碼請私訊我