PHP“;推;到Javascript
现在,我们有一个在本地网络上运行的web应用程序,其中客户端以javascript运行所有内容。为了确保所有内容都同步,这些客户端当前通过发送服务器收到的最后一个“syncId”向服务器发送AJAX请求。然后,服务器使用命令数组树进行响应,以使该客户端保持最新状态。这是每秒钟执行一次,尚未造成任何网络带宽或延迟问题,但是我们将在下个月在一个更大的客户机上安装一个系统,这可能会突破此方法的限制,我想知道让服务器实时“推送”同步事件到客户机是否可行PHP“;推;到Javascript,javascript,php,ajax,long-polling,ajax-push,Javascript,Php,Ajax,Long Polling,Ajax Push,现在,我们有一个在本地网络上运行的web应用程序,其中客户端以javascript运行所有内容。为了确保所有内容都同步,这些客户端当前通过发送服务器收到的最后一个“syncId”向服务器发送AJAX请求。然后,服务器使用命令数组树进行响应,以使该客户端保持最新状态。这是每秒钟执行一次,尚未造成任何网络带宽或延迟问题,但是我们将在下个月在一个更大的客户机上安装一个系统,这可能会突破此方法的限制,我想知道让服务器实时“推送”同步事件到客户机是否可行 srvResponse=httpGet(“CDS
srvResponse=httpGet(“CDSSync.php?sessionKey=“+sessionKey+”&lastUpdate=“+lastUpdate”);
如果(srvResponse!=0){
syncEvents=srvResponse.split(“;”);
对于(var i=0;i请访问www.firebase.com,您可以在几分钟内设置从javascript客户端到所有其他客户端的推送服务。请先尝试简单的教程:
<!doctype html>
<html>
<head>
<script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
<link rel='stylesheet' type='text/css' href='/resources/tutorial/css/example.css'>
</head>
<body>
<div id='messagesDiv'></div>
<input type='text' id='nameInput' placeholder='Name'>
<input type='text' id='messageInput' placeholder='Message'>
<script>
var myDataRef = new Firebase('https://hbw30ob2a8y.firebaseio-demo.com/');
$('#messageInput').keypress(function (e) {
if (e.keyCode == 13) {
var name = $('#nameInput').val();
var text = $('#messageInput').val();
myDataRef.push({name: name, text: text});
$('#messageInput').val('');
}
});
myDataRef.on('child_added', function(snapshot) {
var message = snapshot.val();
displayChatMessage(message.name, message.text);
});
function displayChatMessage(name, text) {
$('<div/>').text(text).prepend($('<em/>').text(name+': ')).appendTo($('#messagesDiv'));
$('#messagesDiv')[0].scrollTop = $('#messagesDiv')[0].scrollHeight;
};
</script>
</body>
</html>
var myDataRef=new Firebase('https://hbw30ob2a8y.firebaseio-demo.com/');
$('#messageInput')。按键(功能(e){
如果(e.keyCode==13){
var name=$('#nameInput').val();
var text=$('#messageInput').val();
myDataRef.push({name:name,text:text});
$('#messageInput').val('');
}
});
myDataRef.on('child_added',函数(快照){
var message=snapshot.val();
displayChatMessage(message.name,message.text);
});
函数displayChatMessage(名称、文本){
$('').text(text).prepend($('').text(name+':')).appendTo($('#messagesDiv'));
$('#messagesDiv')[0]。scrollTop=$('#messagesDiv')[0]。scrollHeight;
};
你应该看看。好的,我会的。我想它一定是一个套接字!我只是有点希望jscript或jquery中会有一些很好的推送功能。@mapek我看到socket.io是基于nodes.js的。nodes.js和socket.io在没有安装nodes运行时环境的浏览器中工作吗?请ck:也许这会有所帮助:我们的软件只通过局域网进行通信,许多客户甚至没有互联网服务