How do you continue to poll for new events without sending a CHECK command?
Or are you using the web socket protocol in your .NET app?

On Wed, Sep 22, 2010 at 1:07 PM, Mridul <[email protected]> wrote:

> Hi physt,
>
> I did something similar from a .NET application. Hopefully it will help:
>
> 1) The app sends a CONNECT, and the APE server responds with a "sessid"
> which I hold on to it
> 2) Use the sessid to send a JOIN, and then I save the "pubid" of the pipe
> 3) I don't rely on sending a CHECK, which I believe is needed by the APE
> server to keep the connection to alive to the client app.
> 4) And using the "sessid", "pubid", the app sends a SEND command. This
> might either succeed or fail. If it fails, I verify the "raw" sent back by
> APE. If the error code is "004" (check all the codes here:
> http://www.ape-project.org/wiki/index.php/Errors_code), I know that my
> "sessid" expired. So, I reissue a CONNECT and JOIN, and call SEND with the
> new "sessid", and "pubid".
>
> Thanks
>
> On Wed, Sep 22, 2010 at 6:38 AM, Johnathan Leppert <
> [email protected]> wrote:
>
>> You can try adding a callback to the return of the first CHECK function
>> to immediately start up another one. The idea is APE times out the CHECK
>> function after about 30 seconds (this is configurable), so you will use APE
>> as your "setTimeout".
>>
>> Thanks,
>>
>> Johnathan
>>
>>
>> On Mon, Sep 20, 2010 at 2:41 PM, physt <[email protected]> wrote:
>>
>>> Ape Gurus,
>>>
>>> 1.  I love APE, it is amazing,
>>> 2.  I'm working on a project to correct some shoddy popup behavior,
>>> and I'd love to use APE to make things more stable and scalable.  (did
>>> I mention that I love ape?)
>>>
>>> For all you airheads out there, all my code runs in the unrestricted
>>> sandbox.  That way it has access to the systray and can pop up
>>> notifications.  It uses mostly XMLHttpRequests to interact with
>>> external webservices running on servers here.
>>>
>>> Since I can't load dynamic code and remain in the unrestricted
>>> sandbox, I can't really use the APE JS libraries.
>>> It looks like it is leveraging iframes rather than XMLHttpRequests.
>>> (When air opens up an iframe to load code not on the domain, it forces
>>> it to run in the restricted sandbox.)
>>>
>>>
>>> This caused me to write up some quick XMLHttpRequests to interact with
>>> the APE daemon.
>>>
>>> I wrote:
>>>
>>> Login - works fine
>>> Channel Join - works fine (I use channels as a way to identify my
>>> clients in our network.  The client has a session ID from its normal
>>> login, and I just have it join a channel of the same name, so that the
>>> server can locate him by sending to his channel.)
>>>
>>> Then I have my problem.  The APE protocol depends on the client to
>>> "CHECK" every 20 seconds or so.  (Then the server closes the previous
>>> "CHECK", that way there is a nice overlap and no lapse in
>>> connectivity.)
>>>
>>> Well, adobe air forbids the use of anything on a timer as a security
>>> hole.  i.e. no setTimeout or setInterval.
>>>
>>> So I think my questions are:
>>>
>>> 1.  Has anyone ever attempted to make APE run inside an adobe air
>>> application?
>>> 2.  Has anyone ever made APE run via XMLHttpRequest?
>>> 3.  Did any of this make sense? or can I provide more information to
>>> help?
>>> 4.  Is there a server side setting which would cause APE to just
>>> respond after 20 seconds, so I can grab that and re-CHECK the
>>> connection?  (i.e. having the timer exist via the server...)
>>>
>>> oh, FYI, currently we manage our push messages via a custom developed
>>> java application that pushes via a long poll XMLHttpRequest:
>>>
>>> 1.  Client XMLHttpRequests
>>> 2.  Server sits on the response for a set number of seconds, or until
>>> a message is ready to pop.  (it either sends a keep-alive or an actual
>>> popup message)
>>> 3.  Client receives either the keep-alive message or a popup message
>>> causing step 4:
>>> 4.  Client re requests.
>>>
>>> It just doesn't seem to work just right, and I think APE is a better
>>> way to go.
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "APE Project" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]<ape-project%[email protected]>
>>> For more options, visit this group at
>>> http://groups.google.com/group/ape-project?hl=en
>>> ---
>>> APE Project (Ajax Push Engine)
>>> Official website : http://www.ape-project.org/
>>> Git Hub : http://github.com/APE-Project/
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "APE Project" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]<ape-project%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/ape-project?hl=en
>> ---
>> APE Project (Ajax Push Engine)
>> Official website : http://www.ape-project.org/
>> Git Hub : http://github.com/APE-Project/
>>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "APE Project" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<ape-project%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/ape-project?hl=en
> ---
> APE Project (Ajax Push Engine)
> Official website : http://www.ape-project.org/
> Git Hub : http://github.com/APE-Project/
>

-- 
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

Reply via email to