我正在创建一个小部件,它将更新一些正在发生的新闻。每当我在数据库中获得一些新信息时,我想将通知推送到窗口小部件。它类似于实时饲料。我不确定如何在javascript中启动这个。
我不想每隔n秒轮询一次以获取信息。我希望服务器每次服务器获取新信息时都将信息推送到客户端。
它类似于gmail。即使没有刷新页面,您也会收到一封电子邮件。
任何指针肯定都会有所帮助。
答案 0 :(得分:0)
你基本上有两个选择,我能想到的是:
答案 1 :(得分:0)
中间节点服务器可以帮助将业务逻辑与轮询操作分开。 需要安装这些软件包 - socket.io,express,request
npm install <package_names>
从节点获取请求数据:
var socket = io.connect('http://localhost:3000');
socket.emit('pollNodeServer',JSON.stringify(requestToServer));
在服务器上:
var http = require('http'),
request = require('request'),
app = require('express')(),
server = require('http').Server(app),
io = require('socket.io')(server);
server.listen(3000);
console.log('Server started at port 3000');
var options = {
headers : {
'Content-Type' : 'application/json',
'User-Agent' : 'request'
}
};
socket.on('pollNodeServer', function(data, callbackfn) {
requestServer(data,socket,callbackfn);
});
来自服务器的回复:
socket.emit('returnJobs',JSON.parse(body));