服务器之间的WebSocket通信

qnzebej0  于 2023-10-20  发布在  其他
关注(0)|答案(2)|浏览(125)

我在Stackoverflow上读了很多,但是经过一周的思考和研究,我被卡住了。
所以我真的要问:)
希望我解释的问题正确,如果不正确,请说!
问题很简单。我需要两个服务器...服务器A -每15分钟插入数据库服务器B -使用来自服务器A的数据进行操作。
让服务器B向服务器A发送数据的http请求很容易,但我真正想要的是,服务器B在更新数据库数据时从服务器A获得“套接字更新”。
问题:服务器B并不总是在同一个URL上。因此,数据库服务器不能简单地执行get/post请求,因为它并不总是知道服务器B的URL。
可能的解决方案:服务器B可以启动socket.io到数据库服务器的www.example.com连接。保持连接到服务器A的线路畅通,这样服务器A就可以通过已经建立的套接字连接用它的新数据库数据进行响应。
那么,有没有可能在两台服务器之间建立一个通用的socket.io连接,就像在服务器和客户端之间建立一个socket.io连接一样?

r9f1avp5

r9f1avp51#

对于服务器到服务器的通信,您可以在其中一个上使用socket.io依赖项,在另一个上使用socket.io-client依赖项。

niknxzdl

niknxzdl2#

服务器通常是其他服务器的客户端。您还可以让服务器监听多个端口--服务器A可以监听来自服务器B(B具有更改的URL)的连接,可以建立该连接以轮询来自A的更改。或者,就像你说的,让A推他们。
您可以使用http节点模块进行请求;这里有一个摘要:

http = require('http');
var call = http.request(
    { hostname: "google.com",
      port: 80,
      path: "/",
      method: "GET",
      auth: "user" + ":" + "password"
    },
    function(res) {
        var data = "";
        res.on('data', function(chunk) {
            data += chunk;
        });
        res.on('end', function(err) {
            console.log("Response was", data);
        });
    }
);
req.write("");
req.end();

相关问题