6

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

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

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

4

1 回答 1

3

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

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

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

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

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

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

至于代理,nginx就是其中之一。有一个node-proxy。并且 IIS 可能能够为您代理它(尽管我怀疑 IIS 是否是一个好的代理)

于 2011-09-21T10:19:05.800 回答