在php中推送通知
如何在基于PHP的webapp中实现推送通知。 我实际上想要实现的是在某个用户加入聊天时收到通知。在php中推送通知
假设两个用户是聊天的参与者,如果第三个用户加入该聊天,那么其他两个用户将被通知。
我想你是指使用Javascript的用户通知。这可以使用websockets(HTML5)或JavaScript每x秒钟拨打一次服务器来完成。
Websockets很难安装是我的经验。
每x秒就是1,经常浪费资源,并且当你得到很多访问者时会导致很多麻烦。
我使用的解决方案是一个名为pusher的api。我仅将它用于我自己的应用程序,所以我使用免费版本。但是,它就像一个魅力和易于安装
也期待在http://en.wikipedia.org/wiki/Push_technology,从Anigel
从服务器真正的推送对客户不(容易)可能用PHP。你需要的是投票。您可以在服务器上为每个连接的客户端创建一个消息队列,客户端会使用一个轮询器自动检索该队列的内容(所以基本上每隔设定的时间间隔执行一次请求)。
这似乎是最优化的解决方案,但我仍然希望有一个非常简单的安装引擎。 – manish 2013-05-01 12:37:26
如果您希望它很简单,那么您需要查看轮询,长轮询或使用api。 http://en.wikipedia.org/wiki/Push_technology
有没有办法使用PHP来使服务器打开通过代理,防火墙等连接到计算机上的程序时,该计算机尚未连接到服务器,并表示它正在等待数据。
这就是有效的长轮询所做的事情,客户端连接到服务器并保持打开状态,等待服务器告诉它一些事情,或者直到它超时。如果超时,那么它重新连接
SocketIO让我们为您的客户创建一个空间,它可以发送消息到客户的房间。
让我告诉你一个简单的例子:
notification.js
var app = require('http').createServer(),
io = require('socket.io').listen(app);
app.listen(3000);
io.sockets.on('connection', function (socket) {
// Joining a room
socket.join('chatroom');
socket.on('newUserJoinRequest', function(data) {
socket.broadcast.to('chatroom').emit('newUserJoinedNotification', data);
})
});
client.html
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://localhost:3000/socket.io/socket.io.js"></script>
</head>
<body>
<input type="text" id="username" placeholder="name">
<button type="text" id="joinButton">Join</button>
<div id="responses">
<h2>NodeJS+SocketIO responses:</h2>
<ul></ul>
</div>
<script>
var socket;
jQuery(document).ready(function() {
socket = io.connect('//localhost:3000');
socket.on('newUserJoinedNotification', function(data) {
var li = '<li>A new user joined the room: ' + data.name + '</li>';
jQuery('#responses ul').append(li);
});
});
jQuery('#joinButton').click(function() {
var username = jQuery('#username').val();
socket.emit('newUserJoinRequest', {name: username});
});
</script>
</body>
</html>
您可以设置推送通知,而不开发自己的使用notify.pm的应用程序。它需要大约2行代码,API是在这里: https://github.com/notifypm/notifypm-php-api
<?php
require_once("notifypm.class.php");
$n = new Notifypm('email', 'password', '.pmNumber');
$n->push('Message!', 'Link (optional)!');
$n->disconnect();
你还没有真的给什么去尝试读取HTTP://en.wikipedia。org/wiki/Push_technology然后搜索php和选择的方法 – Anigel 2013-05-01 12:18:12
我已经在网上搜索任何东西,轮询对我来说不是件事,因为它使其他请求超级缓慢,APE是一个更多的ajax推动引擎,但它又复杂建立。我只需要相当简单,资源少。 – manish 2013-05-01 12:29:52
当某人在聊天框中输入某些内容时,您目前如何向用户发送消息,因此无法使用相同的方法。 – Anigel 2013-05-01 12:37:58