Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP“;推;到Javascript_Javascript_Php_Ajax_Long Polling_Ajax Push - Fatal编程技术网

PHP“;推;到Javascript

PHP“;推;到Javascript,javascript,php,ajax,long-polling,ajax-push,Javascript,Php,Ajax,Long Polling,Ajax Push,现在,我们有一个在本地网络上运行的web应用程序,其中客户端以javascript运行所有内容。为了确保所有内容都同步,这些客户端当前通过发送服务器收到的最后一个“syncId”向服务器发送AJAX请求。然后,服务器使用命令数组树进行响应,以使该客户端保持最新状态。这是每秒钟执行一次,尚未造成任何网络带宽或延迟问题,但是我们将在下个月在一个更大的客户机上安装一个系统,这可能会突破此方法的限制,我想知道让服务器实时“推送”同步事件到客户机是否可行 srvResponse=httpGet(“CDS

现在,我们有一个在本地网络上运行的web应用程序,其中客户端以javascript运行所有内容。为了确保所有内容都同步,这些客户端当前通过发送服务器收到的最后一个“syncId”向服务器发送AJAX请求。然后,服务器使用命令数组树进行响应,以使该客户端保持最新状态。这是每秒钟执行一次,尚未造成任何网络带宽或延迟问题,但是我们将在下个月在一个更大的客户机上安装一个系统,这可能会突破此方法的限制,我想知道让服务器实时“推送”同步事件到客户机是否可行

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:也许这会有所帮助:我们的软件只通过局域网进行通信,许多客户甚至没有互联网服务