Reverse Ajax implementation using php

后端 未结 4 1506
遥遥无期
遥遥无期 2020-12-10 17:07

I am looking to implement reverse ajax in my application which is using PHP and jquery. I have googled a bit about it and found XAJA but that seems to be a paid application.

相关标签:
4条回答
  • 2020-12-10 17:38

    Have you checked APE ?

    Its a push based real-time data streaming technology over a single low volume ajax connection. The concept is useful, you may be able to replicate the same thing with your server-side implementation

    0 讨论(0)
  • 2020-12-10 17:39

    I know of two types of reverse AJAX:
    1- Polling
    2- Pushing

    I think polling is rather easier to implement, you just have your javascript make a regular request to the server every time interval, and when the server have some data for it it will respond. Its like a ping and some call it heartbeat, but its the very obvious solution for this problem. However it may easily overload the server.

    EDIT Simple polling Example code:
    Server-Side:

    <?php
    //pong.php php isn't my main thing but tried my best!
    $obj = new WhatsNew();
    $out = "";
    if ($obj->getGotNew()){
        $types = new array();
        foreach ($obj->newStuff() as $type)
            {
                $new = array('type' => $type);
                $types[] = $new;
            }
    
        $out = json_encode($types);
    }
    else{
        $out = json_encode(array('nothingNew' => true));
    }
    


    Client-Side:

    function ping(){
        $.ajax(
            {
    
                url : "pong.php",
                success : function (data){
                    data = JSON.parse(data),
                    if (data['nothingNew'])
                        return;
                    for(var i in data){
                        var type = data[i]['type'];
                        if (type && incomingDataHandlers[type]){
                            incomingDataHandlers[type]();
                        }
                    }
    
    
            });
    }
    incomingDataHandlers = {
        comments: function () {
            $.ajax({
                url: "getComments.php",
                method: "GET",
                data: getNewCommentRequsetData() // pass data to the server;
                success : function (data){
                    //do something with your new comments
                }
            });
        },
        message: function (){
            $.ajax({
                url: "getMessages.php",
                method: "GET",
                data: getNewMessageRequestData() // pass data to the server;
                success : function (data){
                    //do something with your new messages
                }
            });
        }
    }
    $(docment).ready(function () {
        setInterval(ping, 1000);
    })
    
    0 讨论(0)
  • 2020-12-10 17:40

    You are looking for what they call "long poll" - I did a "long poll php" and I got this thread on stack overflow:

    How do I implement basic "Long Polling"?

    0 讨论(0)
  • 2020-12-10 17:46

    you could websockets in conjuction with "flash" websockets because almost all browser have flash on board(average around 96%? => http://www.statowl.com/flash.php) => https://github.com/gimite/web-socket-js. You could use this together with http://code.google.com/p/phpwebsocket/. Still I am wondering if the performance is going to be any good. If it all possible I would use node.js to do reverse ajax. http://socket.io is a really cool project to do this!

    0 讨论(0)
提交回复
热议问题