Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Developing Chat API like that of Stackoverflow [closed]

Tags:

php

chat

api

How to begin developing chat api, like the one stackoverflow uses? If it is open source, where can i find it, if not can anyone guide me how to build a similar chat api?

like image 658
mrN Avatar asked Dec 05 '10 07:12

mrN


2 Answers

Now its the time of comet.
comet is reverse ajax.If you are using ajax in chat applications u need to check everytime for database updations but in the case of comet its all about server side events.

We can set the certain events @server side then it will automatically update the webpage when the database is getting updated.that is we do not need to give requests all the time.

So that we can avoid the server headache due to large number of requests and the application will be very much faster.

This is a live chat example using comet.
check it out: http://www.zeitoun.net/articles/comet_and_php/start

its beyond ajax

like image 112
sirin k Avatar answered Sep 17 '22 19:09

sirin k


You can build a very simple PHP chat room with jQuery's AJAX functionality if you don't want to bother with the complexity of COMET. Regardless of what the server side API looks like, you can probably interact with it using jQuery from the client.

Clients can poll the server using jQuery code like this:

$(document).everyTime(pillowchat.settings.message_poll_frequency, function() {
     if(pillowchat.state.poll == true){    
        getMessages();
    }
}); 

jQuery POST requests could be sent like this:

$.post("chat.php", {
    "attribute":"important string"
},
function(data){ 
    response = JSON.parse(data);
    processNewMessages(response);
});

They could be requests for new messages, active users, or contain new messages from the client.

The API on the server can be implemented a million different ways. I wrote a simple chat using PHP and CouchDB that worked pretty well. More detail and source code is available here: http://trillworks.com/nick/2011/08/13/pillowchat-how-not-to-build-a-chat-room-with-jquery-phpillow-and-couchdb/

I wouldn't recommend this approach if your expect more than 30 people in the room. When stress testing this design, I found apache couldn't handle all the traffic. Make sure you include some sort of flood detection.

like image 29
Nick C. Avatar answered Sep 18 '22 19:09

Nick C.