]> git.mjollnir.org Git - moodle.git/commit
mod/chat: Normal method - introducing "Stream" updates.
authormartinlanghoff <martinlanghoff>
Wed, 19 Apr 2006 02:20:48 +0000 (02:20 +0000)
committermartinlanghoff <martinlanghoff>
Wed, 19 Apr 2006 02:20:48 +0000 (02:20 +0000)
commit930413b133045bc55dc0e2b5a64d6263faba2195
treea508f7844bba943f685f197cdfdb43ace8ebfad6
parentd1873436d2a445c1ddeeb479e85ce091410f8fc9
mod/chat: Normal method - introducing "Stream" updates.

This is an alternative version of jsupdate.php that acts
as a long-running daemon. It will feed/stall/feed JS updates
to the client. From the module configuration select "Stream"
updates.

The client connection is not forever though. Once we reach
CHAT_MAX_CLIENT_UPDATES (currently 1000), it will force
the client to re-fetch it.

This buys us all the benefits that chatd has, minus the setup,
as we are using apache to do the daemon handling.

Chat still defaults to the normal update method, which is now
optimised to take advantage of keepalives -- so this change is
safe. The instructions in the config page also indicate that this
mode may not be well supported everywhere. It hasn't been
tested on IIS for starters.

In terms of relative cost -- if each hit on jsupdate.php incurs
on ~20 db queries and delivers one update to the client, each hit
on jsupdate takes ~20 queries, and then roughly 2~3 queries to
serve each of the next 1000 updates. On busy sites, the difference
is huge.

There is still room for enhancements in both keepalive and stream
update methods. I am pretty sure we can trim DB queries more.
lang/en_utf8/chat.php
mod/chat/config.html
mod/chat/gui_header_js/index.php
mod/chat/gui_header_js/jsupdated.php [new file with mode: 0644]
mod/chat/lib.php