一起使用 ASP.Net MVC 和 node.js

Jon*_*Jon 5 asp.net-mvc node.js socket.io asp.net-mvc-3 iisnode

我正在编写一个连接到 SQL 数据库并使用我现有的 C# 库的 ASP.Net MVC 应用程序。

我还有一个 TCP 服务器 Windows 应用程序,它通过 XML 发送/接收 TCP 消息。我已经成功设置 node.js 和 socket.io 来处理所有这些,并且有一个 html 页面可以向服务器发送/接收消息。Node.js 目前正在提供 html 页面。发送/接收数据时,XML 会转换为 JSON。

我打算设置我的 MVC 应用程序来为页面提供服务,但只是想知道您对这种跨框架设置的使用有何想法。它看起来是否可行并且是处理 TCP 消息并将其发送到浏览器的好解决方案?我还阅读了有关在 IIS 中托管节点的iisnode,我想这对我的设置来说是一个好主意。你对此有何看法?

Ray*_*nos 3

您基本上有两个网站。其中之一是您的 ASP.NET MVC 网站。另一个是 TCP Windows 应用程序的 Web 客户端。

由于它们是不相交的,因此可以正常工作。

您可能希望通过 ASP.NET MVC 拥有该 Web 客户端的 html 服务器,并且只在 node.js 上运行 websocket 服务器。您可能需要进行一些代理才能使相同的源正常工作。

如果您从运行 IP Y、端口 X 的 Web 服务器提供 HTML 页面,然后尝试与在 IP Y、端口 X + n 上运行的 Node.js WebSocket 服务器通信,则可能会违反同源限制。

这意味着您基本上从服务器 A 加载 socket.io 客户端并尝试与服务器 B 通信。网页不知道您拥有这两个服务器。

解决方案是使用代理,您将所有请求代理到服务器 A 和 B,但由于它们都通过代理,因此不会违反同一来源。

至于代理,nginx 就是其中之一。有一个节点代理。IIS 或许可以为你代理它(尽管我怀疑 IIS 是否能成为一个好的代理)

  • @Jon iisnode 听起来很令人厌恶,我会远离它。唯一的用例是欺骗系统管理员/管理人员在 Windows 商店中安装 Node.js。 (3认同)