Bjørn Nordbø wrote:
On 2008-06-10, at 9:00 PM, Lars Rune Nøstdal wrote:
Ok. Yeah, maybe a Comet module for HT would be of interest. I really hate promising things, but I might give it a try; I mean, attempt make it modularized and not hardwired into SymbolicWeb .... x)
It's interesting to read about your efforts as we discussed Comet as a way to implement real time streaming to our Ajaxy mobile application yesterday. In fact I started writing a Comet module for it almost a year ago (only a naive test), but the interest vaned as the only mobile device that worked with it was the iPhone.
But I was just thinking of looking at it again as the situation on the client side may have improved since then. And, of course, the iPhone is finally coming to Norway.
Anyway, my point is that since there are two developers in Norway that have interest in Hunchentoot/Comet, there has to be hundreds if not thousands! worldwide. :-)
--Bjørn Nordbø
..hehe x)
Ok, way early, but something like this: http://paste.lisp.org/display/62069
It works, but it's not finished. .. I'll document it later and provide a small example (that depends on HT only). There are really just two new exported symbols; COMET-SERVER and WITH-DELAYED-RESPONSE.
Instead of using START-SERVER one have got to do:
(tbnl::start (make-instance 'tbnl:comet-server :port 6001))
..the reason for this is that it seems START-SERVER doesn't accept a custom server designator at the moment.
The other exported symbol, WITH-DELAYED-RESPONSE, works something like this from inside a normal handler function:
(with-delayed-response (stream *comet-delay-in-secs* closure (setf (comet-closure-of session) closure)) (if (comet-message-exists-p session) (princ (comet-message-of session) stream) (princ "no message - but keep on polling, mr. client!" stream)))
Then something like this:
(defun say (msg) (push msg (comet-message-of session)) (when (comet-closure-of session) (funcall (comet-closure-of session))))
..ok, now I gotta start dealing with the connections proper, and logging etc.