为了账号安全,请及时绑定邮箱和手机立即绑定

让 C# 程序与 node.js 应用程序交互的好方法是什么?

让 C# 程序与 node.js 应用程序交互的好方法是什么?

C#
一只斗牛犬 2022-12-24 10:10:50
最近我一直在研究一个 twitch 聊天机器人,它是使用 tmi.js 在 node.js 中开发的。由于它有很多功能,我想通过使用 C# 创建一个控制面板/仪表板来简化使用。我发现了一个关于这个主题的类似问题,但我想知道什么是解决这个问题的好方法,如果有的话,将不胜感激对该解决方案的深入解释。编辑:例如,我希望能够使用控制面板连接和断开机器人。编辑 2:到目前为止,我已经研究过套接字服务器,尽管我需要帮助来理解设置程序和 node.js 应用程序之间的连接。
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

没有“最好”的方法。这几乎是一个见仁见智的问题,它会根据经验、要求和个人喜好而有所不同。两个进程进行通信有几十种不同的好方法。对于您描述的相对简单的情况,它们中的任何一个都可以正常工作。我会提供一些想法。

首先,您是否有任何理由不直接向机器人添加 Web UI?然后,您只有一个程序。您可以向公开控制面板界面的机器人添加 Web 界面。node.js 使添加 Web 界面变得非常容易(可能使用 Express 和您最喜欢的模板子系统)。然后网络界面可以直接访问机器人并可以直接控制它。

其次,如果你有一些令人信服的理由认为控制面板应该是一个单独的程序,它也可以使用 electron 之类的东西在 node.js 中编写。

第三,如果您坚持为控制程序使用 C#,那么您只需决定要使用哪种基于 TCP 的方案来让这两个程序相互通信。对于单向通信(控制面板向机器人发送请求),您可以在机器人上公开一个简单的 http 接口,然后从 C# 控制程序向该接口发送 http 请求。一个人可以在 node.js 程序中创建一个带有一些控制方法的 http 接口,实际上大约需要 5 分钟。然后,您可以使用 C# 提供的任何库向另一台服务器发送 http 请求。

如果您想要/需要 bot 和控制面板之间的双向通信,以便 bot 可以定期向控制面板发送信息,那么您可以使用 socket.io 连接将两者连接起来,然后您将拥有一个连续的双向通信通道两者之间打开。您将向您的 node.js 应用程序添加一个 socket.io 服务器,并在您的 C# 应用程序中使用一个 socket.io 库。然后,C# 应用程序将创建与您的机器人的 socket.io 连接,然后您可以通过该连接以任一方式发送数据/命令。


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信