C# 服务器(不是 Web 服务器)和 PHP 之间的数据交换
Posted
技术标签:
【中文标题】C# 服务器(不是 Web 服务器)和 PHP 之间的数据交换【英文标题】:Dataexchange between C# Server (Not Webserver) and PHP 【发布时间】:2011-01-13 02:18:01 【问题描述】:我有一个持续运行的服务器程序(Linux 上的 C#/.NET 2.0 单声道),我想从 php 脚本连接到它以在网站上显示状态信息。
目的是创建一个(某种)实时浏览器游戏(无 Flash,无 Silverlight),我想使用 PHP 脚本从 C# GameServer 获取必要的信息,即当前单位位置、玩家资源、分数、可见地图等。信息每秒更新一次,甚至更快,但操作可能需要数小时甚至数天(即研究可能需要一周才能完成)
是否有任何库可以让我在程序的这两个部分之间轻松传输信息?
我的想法:
使用嵌入式 WebServer 并通过 PHPs SoapClient 进行连接。 有没有人使用过免费的嵌入式 WebServer(免费,因为游戏是免费的)?
Socket 编程和传输 JSON/XML/SOAP 块。 对于 PHP/C# 的这种类型的网络通信,是否有任何简单的库可以自动从套接字读取,直到消息完成,然后将事件发送到游戏控制器?
只需将每个用户和全局数据转储到数据库或 xml 文件中 最简单的解决方案,但恕我直言,可扩展性不够。
你有什么建议?
提前致谢。
其他有类似问题的补充:
在发布此问题后进行更多研究后,我偶然发现 .NET System.Net.HttpListener 甚至受单声道支持,所以我会 现在用这个。它似乎拥有嵌入 WebServer 所需的一切 进入您正在运行的服务器。
【问题讨论】:
【参考方案1】:我会使用一个简单的嵌入式网络服务器,只需使用 PHP Curl 扩展与它进行交互http://php.net/manual/en/book.curl.php。对于嵌入式网络服务器,我会开始寻找 codeplex,例如http://www.codeplex.com/webserver.
【讨论】:
您知道易于集成的嵌入式网络服务器吗?我只找到了codeplex.com/webserver,而且那个选项似乎太多了,仍然算作“简单”,而且对于这个项目来说可能有点矫枉过正。 也许这个***链接对***.com/questions/458036/…有帮助,我看到那里也提到了这个嵌入式服务器:runkayak.com 谢谢,看起来正是我需要的。【参考方案2】:只需在 C# 服务器上运行一个简单的服务器,通过套接字从您的客户端 (PHP) 连接到它。您必须为交互编写“规则”,但可以避免 JSON/SOAP 等带来的开销。另一个解决方案是使用 XMLRPC 服务器。
【讨论】:
是否有任何(好的和免费的)库可以做到这一点?我不想写整个套接字的东西,因为它可能非常复杂(检查丢失的连接、超时、异步读/写、多个并行连接......)而且它不在我真正想要的范围内为这个项目创建。以上是关于C# 服务器(不是 Web 服务器)和 PHP 之间的数据交换的主要内容,如果未能解决你的问题,请参考以下文章
Web服务器之iis,apache,tomcat三者之间的比较
C#:如何以编程方式检查 Web 服务是不是已启动并正在运行?