json - node.js - 与 TCP 服务器通信(数据 == JSON)

标签 json proxy tcp node.js router

我是 node.js 的新手,在上周末深入研究了它,并从各种示例和小教程中获得了乐趣。 现在我想为我的局域网启动一个小项目,并有几个问题可以让我自己走上正确的方向。

设置:
我的局域网上运行着一个服务器服务。可以在特定端口上通过 TCP 和/或 HTTP(可以启用或禁用 TCP 或 HTTP 或两者)与该服务通信,并根据请求通过 JSON 发送和接收数据。 我基本上想做的是为该服务创建一个基于 node.js 的网络界面,以使用网络浏览器从该服务接收和发送 JSON 数据。

问题:
我已经知道如何基于 node.js 设置 http 服务器。但是现在我一直在寻找一个想法如何创建基于 node.js 的客户端,它位于服务和网络浏览器客户端之间,以将数据从客户端传递到服务器,反之亦然。类似于路由器或代理。

这是一个基于客户端(浏览器)观点的基本方案:

发送:浏览器请求 -> node.js 路由 -> 服务接收
接收:Webbrowser 接收 <- node.js 路由 <- 服务响应

问题:
- 选择 TCP 还是 HTTP? (也许禁用 HTTP 服务器会节省一些资源)-可能已经由 this post 回答了
- 是否有适合我需要的 node.js 包?
- 寻求一个框架(表达式?)还是简单的 node.js 就足够了?
- 任何提示表示赞赏:)
编辑:
- 是否可以在 node.js 中绑定(bind)像 eth0 这样的网络设备而不是定义 ip 地址?

感谢您的帮助&&致以最诚挚的问候
头孢拉

最佳答案

没有理由不能拥有 REST HTTP 服务。

使用像 express 这样的东西处理路由。

如果我正确理解你的问题,那么你有一个用“foobar”编写的 web 服务,位于你可以使用 node.js 连接的某个 TCP 端口上。

所以如果你使用 express 你会写类似的东西

app.get("/resources/", function(req, res) {
    var socket = new net.Socket();
    socket.connect(port, host, function() {
        socket.on("data", function(json) {
            res.contentType("json");
            res.send(json);
            socket.end();
        });
        socket.write(...);
    });
});

基本上,您已经编写了一个 http 中间人,它通过 TCP 联系您的服务,然后将数据写入您的 HTTP 请求的响应中。

关于json - node.js - 与 TCP 服务器通信(数据 == JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622334/

相关文章:

ruby-on-rails - 是否可以使用dotenv将JSON文件存储到ENV变量中?

php - 通过 SQL 的多维 JSON 对象

javascript - 在 React 中创建一个保存数据的表单

java - 代理仅忽略 httpS 请求的身份验证 header

c# - HttpClient 和使用代理 - 不断得到 407

java - 很长的 GC 周期是否可能导致 "Connection refused"异常?

javascript - JSON 对象返回未定义的值

python - 附加 Django HTTP 代理 URL

c++ - 在 Linux 上使用 C++ 获取事件的 TCP/UDP 连接

C - 仅在 MTU 达到最大值时才发送 TCP 数据包