You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Alex Dean (JIRA)" <ji...@apache.org> on 2010/09/28 19:29:41 UTC

[jira] Commented: (AMQ-2948) Support ajax clients in multiple windows/tabs in a single browser

    [ https://issues.apache.org/activemq/browse/AMQ-2948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=62198#action_62198 ] 

Alex Dean commented on AMQ-2948:
--------------------------------

There's a separate minor change in the attached patch, which ensures that the Content-Type header is always set to 'text/xml'.

In current svn code, this header is only set when a message is delivered.  When a timeout occurs (and an empty <ajax-response></ajax-response> is returned), the Content-Type header is set to 'text/plain'.  The jQuery adapter attempts to parse the responseXML property of the response, which is not populated due to the Content-Type header being set to 'text/plain'.

This is seen in FIrebug as a 200 response resulting in a parseerror.  (Successful response which fired the error-handling ajax callback!)

> Support ajax clients in multiple windows/tabs in a single browser
> -----------------------------------------------------------------
>
>                 Key: AMQ-2948
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2948
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.4.1
>         Environment: OSX 10.6
> Centos 5.4
>            Reporter: Alex Dean
>         Attachments: support-multiple-ajax-clients-per-session.patch
>
>
> In current ajax code, there is a 1-1 relationship between ajax client and session.  Since multiple windows in the same browser share the same session, it's impossible for the ajax code to update both windows.  Either 1 or the other will receive messages, but not both.
> The attached patch allows an optional 'clientId' string to be passed to the JavaScript amq.init() function, similar to that supported by the REST servlet.  This clientId string is sent to the server with every ajax request.  In MessageListenerServlet, a new consumer is created for every new sessionid+clientId, allowing multiple windows in the same browser to send & receive messages independently.
> For some (currently) unknown reason, IE7 cannot send messages from multiple windows.  2 IE7 windows can receive messages independently with no errors, but once either IE7 window sends a message, both windows cease receiving data.  This behavior is not seen in FF (OSX or WinXP) or Safari (OSX).  All those browsers are able to send & receive simultaneously in multiple windows with no errors.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.