Ali, Pretty sure - I've run all the network tests and even rolled out Ethereal to check the packets on the network. I can see the requests going from the browser to Cat and being stacked up. BTW this works fine as well, as long as you don't having a pending request. Did your app use the same long poll approach + have other traffic flowing concurrently? If yes then that would be good to know. Thanks - J
On Tue, Jun 7, 2011 at 2:59 PM, Mesdaq, Ali <[email protected]> wrote: > Are you sure it's a Catalyst issue? Sounds like it could be a JS issue with > your script waiting for responses before moving on to the rest of the ajax > calls. Are you using any JS frameworks? A good test could be you create a > stub method in catalyst with different wait periods and verify that your JS > code is treating them async. I have implemented something that is almost > exactly the same (ajax js, catalyst, poe server that uses json interface over > tcp) and it worked as expected so I am pretty sure it's not an catalyst issue. > > Thanks, > ALI MESDAQ > Sr. Security Researcher > > WEBSENSE, INC. > ph: +1.858.320.9466 > fax: +1.858.784.4466 > www.websense.com > > Websense TRITON(tm) > For Essential Information Protection(tm) > Web Security | Data Security | Email Security > > > > -----Original Message----- > From: jeff robinson [mailto:[email protected]] > Sent: Tuesday, June 07, 2011 10:08 AM > To: The elegant MVC web framework > Subject: [Catalyst] long poll AJAX > > HI, > I am using Catalyst to display some server side data using AJAX. > Essentially there are 3 main blocks: > 1) The users browser, runing javascript and using the XMLHttpRequest object > for the AJAX calls > 2) The Catalyst web server > 3) A remote data server (RDS). This is another Perl app (POE based) that has > a simple API using JSON. > > Some calls on the RDS API basically perform login (to the data source) and > provide status info. One call in particular uses the long poll AJAX technique > to provide minimal delay when the server side data changes. A particular URL > on Catalyst is basically a relay to the remote data source. It uses > IO::Socket to create the necessary TCP connection. > > Here's the problem: > > Everything works fine if the data poll is not delayed and the various AJAX > requests are completed in a sequential fashion. However what I'm looking for > is the long poll request to just sit there while other AJAX requests check > status etc. The AJAX requests are made to a single URL, with an argument that > is the request, ie /myserver/ajax/?{JSON data} From separate tests I know > the data source end works fine in this regard. I'm using firebug's networking > screen to check on the requests from the browser to Catalyst and that looks > good. The problem seems to be a bottleneck in Catalyst, because as soon as > the long poll completes all of the waiting status requests complete instantly > as well. I had imagined that the threading on Catalyst would support the > functionality I'm looking for. Any ideas how to resolve? > Thanks - Jeff > > _______________________________________________ > List: [email protected] > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/[email protected]/ > Dev site: http://dev.catalyst.perl.org/ > > > To report this as spam, please forward to [email protected]. Thank you. > > > Protected by Websense Hosted Email Security -- www.websense.com > > _______________________________________________ > List: [email protected] > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/[email protected]/ > Dev site: http://dev.catalyst.perl.org/ > _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
