gpt4 book ai didi

c# - 通过 PHP 与 .net 通信

转载 作者:行者123 更新时间:2023-11-30 23:29:33 25 4
gpt4 key购买 nike

我有一个 .net winform 应用程序,我希望允许用户通过 PHP 连接到它。

我使用 PHP 是出于个人选择,以帮助降低成本。

快速概览:

人们可以连接到我的 .net 应用程序并启动一个新线程,该线程即使在他们关闭浏览器后也会继续运行。然后他们可以随时登录以查看他们的线程正在做什么的状态。

目前我想到了两种方法:

想法 1 - 套接字:

当用户第一次连接并生成一个线程时,一个 GUID 与他们的“网络”登录详细信息相关联。

下次 PHP 通过套接字连接到应用程序时,PHP 会发送带有 GUID 的“GET.UPDATE”命令,然后将其添加到给定 GUID 的 MESSAGE IN QUEUE 中。

.net 应用程序生成的线程正在检查 MESSAGE IN QUEUE,当它看到“GET.UPDATE”命令时,它会将数据编码为 json 并将其添加到 MESSAGE OUT QUEUE

下次有来自该 GUID 的 PHP 套接字请求时,它会发送 MESSAGE OUT QUEUE 中的数据。

想法 2 - 数据库:

与上面的想法相同,但是来自 PHP 的命令被放入数据库中

.net 应用程序线程检查数据库中的新 IN MESSAGES

如果它收到 GET.UPDATE 命令,它会将 json 编码的数据添加到数据库

下次 PHP 连接时,它将检查数据库中的新消息并相应地报告数据。

我只是想知道以上两个想法中哪个最好。摆弄 socket 很快就会变得很痛苦。但是我担心数据库的想法,如果我有 1000 个用户,我们将有一个数据库表,如果队列中有很多消息,它可能会开始变慢

我们会采纳任何建议。

最佳答案

这两种解决方案都可以接受,但如果您的用户负载很高,您可能需要重新考虑您的方法。如果您正在查看数以千计的请求,WinForms 解决方案将不会像 WCF 解决方案那样健壮。我不建议仅将数据库用于消息传递,除非您的流程结果已存储在数据库中。如果是,我不建议直接公开数据库,而是通过公开的 API 来控制数据库访问。数据库被设计成高度可用/可扩展的,所以我不会太担心负载,除非你正在寻找像 SQLite 这样的低端数据库。

如果您考虑公开公开数据库并将其用作消息服务,无论出于何种原因,我建议 Postgresql's LISTEN/NOTIFY . Npgsql 对此有很好的支持,而且很容易实现。 Postgresql 也可以免费获得,并有一个大型社区提供支持。

关于c# - 通过 PHP 与 .net 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com