c++ - 小型即时通讯软件架构的选择
黄舟
黄舟 2017-04-17 11:27:35
0
5
902

问这个问题的背景是,学校的小学期项目是用C++实现一套小型的即时通讯软件,包括服务器端和客户端。一般来说想到的解决方案都是Socket异步通信、基于XMPP协议等等,但我没有C++写网络的经验,只会一些PHP写HTTP服务器端,时间上也比较紧迫,所以想到了这样的几个问题:

  1. 即时通信软件是否可以采用Web应用的模式,即客户端和服务器使用HTTP请求通信?
  2. Socket是对传输层的TCP/IP协议的封装,而HTTP则属于应用层,那么“使用Socket编写网络编程”和“使用HTTP请求进行通信”这两者有什么区别和联系?
  3. C++编写Web服务器实现API,有没有轻量级的实现?
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(5)
刘奇

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源碼請私訊我

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板