我正在开发一个由Php Web服务器和C#程序组成的系统。它们都在同一台主机上运行。 Web服务器从客户端(移动设备)接收数据,然后更新到数据库,有时它应该通知C#程序。为此,我在Php端打开一个套接字客户端,然后连接到C#程序端的套接字服务器,如下所示:
(Php web服务器端)
1) process HTTP Request from clients
2) update data to database
3) if need to notify C# program (depending on received data)
3.1) open a socket client (localhost, 8888)
3.2) send data
3.3) close socket
到目前为止,我们的系统在少量客户端(用于测试)时运行良好,但我不确定是否有大量客户端。
任何人都可以给我一些评论以提高表现!
答案 0 :(得分:1)
套接字相对非常快;与使用说消息Q有关。插座本身不会窒息;你的单个C#程序应该能够应付负载;否则消息将继续堆积,最终套接字发送调用将开始备份。
消息Q系统是设计用于执行您在此处尝试执行的操作的系统 - 它们提供允许发送和接收消息的中间件。它们提供诸如恢复,保证交付,允许您向外扩展(通过使用多个接收器C#程序)等等。您可以查看它们。
如果您太担心套接字性能,可以使用某种进程间通信,其细节取决于操作系统。共享内存,管道等等。通常所有这些,包括套接字,都足够快,你不会注意到正常的日常使用。差异只会在非常高的比率下显现出来。
您还可以查看内存数据库中的内容。 PHP将其写入内存DB; C#程序读取内存DB