Hi Anders, thanks.  If I understand what you are asking, in fact the server
in my case does not care if anyone is listening, however you can set how
long the messages live in the queue.  The client holds the responsibility of
keeping track of what messages it has already seen based on the date in the
response header.  If you want to make sure your client doesn't miss messages
you set a very long time to live and let the client catch up to what it
hasn't seen yet in the spew of messages when it signs back on.  For my
application this was not necessary, as I treat push messages as ephemeral
short lived things.  When the client comes back on the direct request to the
server to log in gives its next waiting event as a plain old response to the
request to the application maintaining this state.  Does this answer your
question?
On Dec 21, 2010 5:50 PM, "Anders Rune Jensen" <anders.rune.jen...@gmail.com>
wrote:
> On Mon, Dec 20, 2010 at 6:06 PM, rob levy <r.p.l...@gmail.com> wrote:
>> I have posted a repository containing the code for a web application I
made
>> using a server push (AKA Comet, long polling) architecture.  The front
end
>> is in Javascript, and the back end is in Clojure.  The clojure code is
able
>> to send notifications to clients' browsers effectively through use of
>> nginx's push module, which the clients subscribe to.  With websockets
>> presently out of reach this can be a good way of doing this sort of
thing,
>> and at least on my small-scale testing it is a super responsive way of
>> simulating a socket.
>
> Hi Rob
>
> Interesting project. I havn't looked at the machine learning part of
> it, although that also sounds interesting, but at first I was more
> interested in the long polling aspect of your application. I was
> looking at something similar but in the end I decided that given my
> use case (mostly a single client polling) it didn't make much sense to
> use nginx. I'm guessing that in your architecture, nginx makes more
> sense because you have a lot of clients polling the same interface?
> That way you know that it is much more likely that there will be at
> least one subscriber left for a message when the server actually has
> something to send. And I guess the way the back-end knows that there
> is still someone that wants to know about a message is that nginx says
> that there is still clients waiting when it delivers the message.
> Could you maybe elaborate a bit more on this?
>
>> https://github.com/rplevy/sayoperation
>>
>> The application itself is online (for now) at:
>>
>> http://www.robertplevy.net/sayoperation/
>>
>> A little bit of context is necessary here.  This is a game I made as part
of
>> my final project for a course I am in (I am taking courses part time as
part
>> of an MA program I will eventually complete) on the topic of Machine
>> Learning and Natural Language Processing.  The purpose of the game is to
>> collect game move data.  I'm in the process of figuring out how to train
a
>> classifier to learn to make the same sorts of game moves (though the text
>> generation piece is out of scope), to have 1/2 of an AI game player.
>>
>> If you want to play the game and help me collect training data, here are
>> some things to know:
>>
>>    1.  You will be asked to give an instruction to your team mate, given
the
>> information on the screen.  The red is the target, and the green is what
>> your teammate will move to the target.  Notice that the target is always
an
>> empty space.   For example "put the crab above the butterfly" would make
>> sense if the crab had a green border, and there were a red bordered
target
>> above the butterfly.
>>
>>    2.  Use clear and natural language when entering data., try to explain
in
>> the way you would explain to a person.  Punctuation and capitalization is
>> stripped out/lowercased.
>>
>>    3.  The rounds work like this.  Player 1 instruct -> Player 2 move -->
>> Player 2 instruct --> Player 1 move.  The game automatically presents
your
>> next available move just like in RIAs such as gchat or facebook (no need
to
>> refresh).
>>
>>    4.  Multiple concurrent games are encouraged.  The game should be
>> responsive and will immediately tell you if you have a move to play in
any
>> of your games.
>>
>>    5. Caveat:  The application has been tested thoroughly in Firefox and
>> Chrome.  While there is no inherent reason why it shouldn't be possible
to
>> make it work in Opera or Internet Explorer, I have not tested it in IE
(so
>> it probably doesn't work in that browser), and I am aware that it doesn't
>> work in Opera.  This is just a matter of time and effort, that I need to
>> spend on the NLP side of this project at the moment.
>>
>>    6. The high scoring team as of 2am tonight will win something (I
haven't
>> decide what, give me ideas please).
>>
>> Thanks,
>> Rob
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
your
>> first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com<clojure%2bunsubscr...@googlegroups.com>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>
>
>
> --
> Anders Rune Jensen
>
> http://www.iola.dk
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com<clojure%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to