繁体   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