簡體   English   中英

如何在Web App和C Sharp之間進行通信

[英]How to Communicate Between Web App and C Sharp

我正在嘗試制作一個需要與使用C Sharp編寫的程序進行通信的Web應用程序。 但是我找不到一種好的交流方式。 我需要的是,如果用戶單擊Web應用程序上的某些內容,它將通知C Sharp程序。 另外,如果C Sharp程序上發生了事件,則需要提醒Web應用程序。 這兩個都將在同一台計算機上運行。

現在,我主要關注C Sharp程序,只是定期“詢問” Web應用程序的狀態。

我已經嘗試過使用對Web應用程序的POST請求,並且在此方面取得了一些成功,但是我不知道如何從本質上在Web應用程序上存儲和更新“狀態”。 例如,C Sharp程序發送POST / GET請求以詢問狀態,Web應用程序以“什么都沒有改變”或某種狀態代碼來響應。 我不知道該如何保持狀態。

我曾嘗試使用Web套接字,但我認為C Sharp方面不可能實現。 但是,我絕對願意就此如何工作提出建議。

我已經研究過使用ReST架構風格,但是很難理解如何實現它。 我主要在apache服務器上使用AJAX,而我看到的大多數ReST示例都使用IIS。

我成功實現此目標的一種方法是一種可怕的解決方法。 我使用3個文件來存儲內容,Web應用程序的狀態和C Sharp程序的狀態。 但這需要我不斷地獲取文件,讀取文件,編寫新文件並上載文件。

抱歉,如果這個問題的形成方式很差,那么我顯然是新手,這是我的第一篇SO帖子。 另外,我將提供示例代碼,但我將從平板電腦上發布此代碼,因此現在無法訪問。

如果它們在同一台計算機上,則可以使用“管道”(Unix),本地套接字或文件處理程序。

這些是所有類型的IO對象,兩個應用程序都可以“監聽”這些IO對象,而不會暴露給網絡,並且在“等待”數據時不會阻塞。

...但這會限制您的可伸縮性。

另一種選擇是使用發布/訂閱服務,例如Redis。 這是比websockets更好的選擇,因為您可以讓多個C#應用程序監聽集中式數據源上的多個Web應用程序。

它在與數據庫耦合的抽象層后面使用相同的IO概念(使用套接字)–非常有效。

祝好運!

我實現了類似的東西。 我需要一個桌面應用程序來偵聽來自瀏覽器的api調用。 我最終決定實現一個“ Web連接器”,該連接器可以作為應用程序的一部分創建,也可以作為服務安裝。

這是一個很好的示例: https : //msdn.microsoft.com/zh-cn/library/system.net.sockets.tcplistener(v=vs.110).aspx

暫無
暫無

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

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