我在Stackoverflow上阅读了很多内容,但经过一周的思考和研究后,我一直在被困......
所以我真的要问:)
希望我能正确解释问题,如果没有,请说出来!
问题是简单的。我需要2台服务器......服务器A - 除了每15分钟填充一次数据库之外什么都不做,服务器B用服务器A处理数据。
很容易让服务器B对数据进行http请求,但我真正想要的是服务器B在更新数据库数据时从服务器A获得“套接字更新”。
问题:服务器B并不总是在同一个URL上....所以数据库服务器不能简单地执行get / post请求,因为它不会总是知道它的url。
这就是为什么我希望,服务器B可以启动与数据库服务器的socket.io连接。保持对服务器A的开放,以便服务器A可以通过已建立的套接字连接响应其新的数据库数据....
所以基本上......是否有可能在两台服务器之间建立一个通用的socket.io连接..就像客户端之间的服务器一样???
非常感谢!!!
更新:稍微澄清一下。
我有一个股票数据库..它从交易API获取所有数据,每15分钟一次。 这台服务器绝对不能停止!它可能,但令人讨厌,导致数据不一致......
我有另一个脚本,它将一直处于开发阶段。它会对来自数据库服务器的数据进行计算。所以它偶尔会有(dev)错误等等。这个脚本不应该停止'数据库自动收录器'脚本......所以我想把它们彼此分开运行。这就是为什么我需要有2台服务器相互连接..
我的数据库是从一个固定网址运行的。但我的开发脚本取决于我目前开发的位置..
对于我想要达到的目标,也许有更好的解决方案..?
答案 0 :(得分:4)
对于服务器到服务器的通信,您可以对其中一个使用socket.io依赖,而对另一个使用socket.io-client。
答案 1 :(得分:1)
应该可以,服务器通常是其他服务器的客户端。您还可以让服务器监听多个端口 - 服务器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();