簡體   English   中英

C#中具有后端的跨平台聊天應用程序的方法

[英]Approach for cross platform chat application with back-end in c#

我想用c#創建一個帶有后端的跨平台聊天應用程序,我在尋找一種方法來執行此操作,結果發現我可以通過對服務器上的處理程序的http請求來執行此操作,並相應地使用響應。 因此,到目前為止,我制作了可以使用數據庫進行添加,登錄,發送和接收消息的處理程序。

現在,我為此制作了android客戶端,並為用戶獲取消息,我需要以特定的時間間隔(3秒)執行http請求。

我覺得這不是一個好方法。 我正在為接近30000的目標受眾制作此應用。他們可以在單個會話中一對一聊天。

我只想知道我是朝着正確的方向前進,還是有更多更好的方法可以使用后端制作聊天應用。

我聽說過wcf,但不清楚應采取哪種方法。 請指導我有關聊天應用程序的方法。

編輯任何著名的聊天應用程序(如whats應用程序),facebook Messenger都將很少工作的示例將是一個很大的幫助。 謝謝。

您可以使用HTTP來做到這一點,但我建議您改用TCP。 此處codereview上有一個基於C#的TCP服務器的非常堅實的基礎,它將概述如何處理Socket對象以及如何正確處理連接。

這樣做的主要好處是您可以將客戶端連接到服務器,並且客戶端幾乎可以是任何語言,它不必是C#-只要該語言支持套接字,您就可以精細。

最重要的是,您可以讓客戶端偵聽服務器,從而無需每隔幾秒鍾就輪詢服務器以查找新消息。 客戶端套接字將在服務器發送數據時接收數據,您可以立即幾乎實時地處理數據,而如果您每隔3秒(例如3秒)通過HTTP輪詢服務器是否有新消息,您將永遠結束我的聊天服務出現延遲,這是我想避免的事情。

請參閱上面鏈接的CodeReview上的代碼示例,並閱讀Socket在C#中的工作方式,以及TCP在保證方面的工作方式(TCP保證通過它發送的任何內容都將以相同的順序到達另一端,但是(不一定要放在一個小包中,等等),而且我非常有信心,只要您將其全部使用好,您就能制作出出色的聊天應用。

編輯:我剛剛注意到您的帖子上的WCF標簽。 我個人會避免在此特定項目中使用它,因為您希望獲得跨平台支持。 嘗試盡可能降低級別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM