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

时间:2019-04-20 19:39:00

标签: c# node.js socket.io

最近,我一直在开发一个使用tmi.js在node.js中开发的抽动聊天机器人。由于它具有许多功能,因此我想通过使用C#创建控制面板/仪表板来简化使用。

关于此主题,我发现了一个类似的问题,尽管我想知道对这个问题有什么好的解决方案,如果有的话,对该解决方案进行深入的解释将不胜感激。

编辑:例如,我希望能够使用控制面板连接和断开漫游器。

编辑2:到目前为止,我已经研究了套接字服务器,尽管我需要帮助来了解如何设置程序与node.js应用程序之间的连接。

1 个答案:

答案 0 :(得分:-1)

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

首先,您是否有任何理由不只是将Web UI直接添加到机器人中?然后,您只有一个程序。您可以向漫游器添加Web界面,以显示控制面板界面。 node.js使添加Web界面非常容易(可能使用Express和您喜欢的模板子系统)。然后,Web界面可以直接访问该bot并可以直接对其进行控制。

第二,如果您出于某些令人信服的理由而认为控制面板应该是一个单独的程序,则也可以使用诸如电子之类的东西将其写入node.js中。

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

如果您希望/需要在机器人与控制面板之间进行双向通信,以便机器人可以将信息定期发送至控制面板,则可以将两者与socket.io连接相连接,然后就可以连续两者之间建立了定向通信通道。您将socket.io服务器添加到node.js应用程序,并在C#应用程序中使用socket.io库。然后,C#应用程序将创建与您的机器人的socket.io连接,然后您可以通过该连接发送数据/命令。