Had*_*i.M 7 php jquery notifications real-time
我正在使用php + mysql开发一个约会中心Web应用程序.我目前要做的是在没有第三方推送器且没有使用jQuery SetInterval AJAX请求的情况下,在从Web服务器到客户端/用户保龄球的预约时发送通知.我认为SetInterval和AJAX是一种糟糕的方法,因为客户端和服务器之间的流量太大了.
如何在不使用SetInterval轮询服务器的情况下实现通知?
MDD*_*DDY 13
您可以使用NodeJ执行此操作.NodeJS是您服务器上的javascript,可以实时向连接的客户端推送内容.
它非常易于使用和设置.你需要一个专用于实时应用程序的服务器,我使用http://nodejitsu.com.
服务器端
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, url = require('url')
app.listen(8080);
function handler (req, res) {
// parse URL
var requestURL = url.parse(req.url, true);
// if there is a message, send it
if(requestURL.query.message)
sendMessage(decodeURI(requestURL.query.message));
// end the response
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("");
}
function sendMessage(message) {
io.sockets.emit('notification', {'message': message});
}
Run Code Online (Sandbox Code Playgroud)
客户端
<script src="socket.io.min.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('notification', function (data) {
console.log(data.message);
});
</script>
Run Code Online (Sandbox Code Playgroud)
我在下面的@intivev中添加了易于使用的示例,以便为将来的读者完成答案
为此,您可以使用 WebSockets,Ratchet是构建在React 库之上的 PHP 实现。我已经在生产应用程序中使用了这两个库,并且对它们非常满意。
是的,使用 node.js 是一种选择,也许是更好的选择 - 取决于您当前的情况。
安东尼.
| 归档时间: |
|
| 查看次数: |
23659 次 |
| 最近记录: |