I have a working comet system using Hunchentoot. <br><br>The basic way I'm operating is to have the browser contact the hunchentoot server and the server thread waits on a semaphore. Any other thread can then release the semaphore and cause a reply back to the browser.<br>
<br>Hope this helps. I am only using this for development purposes, as I have been having problems with certain browsers, and this will also occupy one of the available browser requests, where many browsers have a very small number available.<br>
<br>(defun kill-comet-thread (thread)<br>  (warn "KILLING COMET THREAD: ~a" thread)<br>  (ignore-errors<br>    (destroy-thread thread)))<br><br>(defun handle-comet ()<br>  (awhen (session-value 'comet-thread) (kill-comet-thread it))<br>
  (setf (session-value 'comet-thread) *current-thread*)<br>  (wait-on-semaphore (session-value 'comet-semaphore))<br>  (setf (session-value 'comet-thread) nil)<br>  (aif (session-value 'comet-fn) (funcall it)))<br>
<br>(defun comet (fn &optional (session *working-session*))      <br>  (setf (session-value 'comet-fn session) fn)                <br>  (signal-semaphore (session-value 'comet-semaphore session)))<br><br><br><br>
<div class="gmail_quote">On Thu, Feb 26, 2009 at 4:01 PM, Jim Prewett <span dir="ltr"><<a href="mailto:download@hpc.unm.edu">download@hpc.unm.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Hello,<br>
<br>
I'm not quite sure what I'm after except that the buzzword seems to be<br>
"COMET".<br>
<br>
AFAICT, much of the time, this involves having javascript send an<br>
XMLHttpRequest to the server which the server keeps open until there is<br>
data to be sent to the client.<br>
<br>
Has anyone done anything like this?  Does anyone have thoughts on how one<br>
might implement something along these lines?<br>
<br>
All I am really after is some sort of "Server Push" - I'd be happy to hear<br>
any thoughts anyone has along these lines.<br>
<br>
Thanks,<br>
Jim<br>
<br>
James E. Prewett                    Jim@Prewett.org <a href="mailto:download@hpc.unm.edu">download@hpc.unm.edu</a><br>
Systems Team Leader           LoGS: <a href="http://www.hpc.unm.edu/%7Edownload/LoGS/" target="_blank">http://www.hpc.unm.edu/~download/LoGS/</a><br>
Designated Security Officer         OpenPGP key: pub 1024D/31816D93<br>
HPC Systems Engineer III   UNM HPC  505.277.8210<br>
<br>
_______________________________________________<br>
tbnl-devel site list<br>
<a href="mailto:tbnl-devel@common-lisp.net">tbnl-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/tbnl-devel" target="_blank">http://common-lisp.net/mailman/listinfo/tbnl-devel</a><br>
</blockquote></div><br>