Uggh - I don't bother with that. There's too many problems (at least anecdotally from 3rd parties - I've never used it myself). I think it's because there's no good overview describing how it works & what the various limitations are. Thus when you integrate with GWT, you can encounter situations that might never happen in a deployed environment.
I personally prefer to generate a session id manually (if one isn't given) & then provide it to the client for future reference. Probably you're best bet would be to look on Java forums & app server or java webapp forums to find more info about how the thread-local request session id is generated. It might help you track down what is wrong, or figure out if this is a limitation in general. When you say different clients, do you mean two firefox windows or two IE windows? Try 1 browser A window, & 1 browser B window. I don't really see a problem with two different tabs of the same browser getting the session id. Let's the user continue their session from another tab/restart on tab close which is a nice usability feature from the user's perspective IMHO. I don't have a lot of experience with using servlet sessions (I always prefer to create my own since I'm fairly confident I can do it following good security practices & all of these have really been throw-away school projects), so I probably can't provide any more detailed advice - does anyone else have better advice? On Mon, Apr 27, 2009 at 12:53 AM, [email protected] <[email protected] > wrote: > > I mean this : getThreadLocalRequest().getSession().getId() > gives me the same id for two different clients that are opened. > Someone told me that maybe two browsers share a cookie cache/address > space > and because of that they see the same cookie. > I googled this theme about two weeks but i did not find out how to > separate them . > So maybe this affects in some way the story with requests, maybe there > is only one thread openes for two clients. > > > On Apr 26, 11:07 pm, Vitali Lovich <[email protected]> wrote: > > On Sun, Apr 26, 2009 at 3:29 PM, [email protected] > > <[email protected]>wrote: > > > > > > > > > > Are you sure you're not doing a notify? Maybe you actually receive > an > > > > event? InterruptedException (from memory, haven't looked at the > javadoc) > > > > get's called when wait times out - if you call notify, it'll wake up > the > > > > thread normally. > > > > > That's exactly what i do there, notifying. > > > Forgive my newbieness, i thought notify should cause > > > InterruptedException )))))))) > > > Minus one problem. > > > > > But i still can't understand what is going on with Hosted Mode. > > > There is something else, new session does not open for new client. > > > Maybe it is something local on my comp, maybe there is something > > > to configure ? > > > > What do you mean by new session (I hate this term in general because so > many > > things have sessions that the term loses all meaning). Is there some > > specific session id you are referring to? Threads? > > > > > > > > > On Apr 24, 6:55 am, Vitali Lovich <[email protected]> wrote: > > > > On Thu, Apr 23, 2009 at 2:05 PM, [email protected] > > > > <[email protected]>wrote: > > > > > > > I tested both FF and IE6 . I'm pretty surprised too of the results, > so > > > > > I'm still searching the problem. > > > > > > > >Are you calling getEvents (the one > > > > > > that sends of the request to the server) on the client-side more > than > > > > > once? > > > > > > > No, i checked it after you said that two requests is the maximum. > > > > > I call the getEvents only once, after logging in. > > > > > There is also something weird happens when it runs in browser . > > > > > In the getEvents on server side in this part > > > > > > I can't imagine a case where the server side behavior will change if > you > > > use > > > > hosted mode or a browser. I mean hosted mode runs in the same VM, > but > > > it's > > > > a different thread. > > > > > > try > > > > > > > { > > > > > synchronized( user ) > > > > > { > > > > > user.wait( 20*1000 ); > > > > > } > > > > > } > > > > > > > catch ( InterruptedException ignored ) > > > > > { > > > > > System.out.println("Server interupted, sending response"); > > > > > > > } > > > > > > > when interrupted the message is not printed. It does not enter the > > > > > catch clause at all. > > > > > > Are you sure you're not doing a notify? Maybe you actually receive > an > > > > event? InterruptedException (from memory, haven't looked at the > javadoc) > > > > get's called when wait times out - if you call notify, it'll wake up > the > > > > thread normally. Or is the other way around? In any case, put the > print > > > > after your catch - that's where it belongs. > > > > > > But definitely, instrument getEvents something like this on the > server > > > side: > > > > > > System.out.println(user + " waiting for events"); > > > > > > try { > > > > // code for getEvents} finally { > > > > > > System.out.println(user + " responding to client"); > > > > > > } > > > > > > That'll help you figure out what your server is doing. > > > > > > Also, you can usehttp:// > > > code.google.com/p/google-web-toolkit/wiki/LightweightMetricsDe...to > > > > inject profiling of your RPC calls to figure out what your browser is > > > > actually doing (in case you miss something). > > > > > > > I've added some print after wait in the try > > > > > clause, and when the server interrupted the message in the try > clause > > > > > printed. > > > > > Is it magic or something ????? ))))))))))) > > > > > > > On Apr 23, 12:01 pm, Vitali Lovich <[email protected]> wrote: > > > > > > Seriously doubt it's a hosted mode mode issue. Which browser did > you > > > > > test > > > > > > web-mode with? Hosted mode actually launches a version of IE6, > so > > > using > > > > > FF > > > > > > or IE7 may present different issues (for instance they might have > a > > > > > raised > > > > > > AJAX connection limit) > > > > > > > > The issue is purely on the client side. Are you calling > getEvents > > > (the > > > > > one > > > > > > that sends of the request to the server) on the client-side more > than > > > > > once? > > > > > > > > On Thu, Apr 23, 2009 at 4:44 AM, [email protected] > > > > > > <[email protected]>wrote: > > > > > > > > > Well, it really looks like a bug, cause when i > > > > > > > compile it to browser it works properly ( meanwhile )))) ). > > > > > > > Thanks for your answers. > > > > > > > > > On Apr 23, 10:05 am, Salvador Diaz <[email protected]> > > > wrote: > > > > > > > > As Vitali said, there are some common pitfalls when trying to > > > > > > > > implement something along the lines of whatyou're trying to > do. > > > > > > > > There have been plenty of discussions related to chat > > > implementations > > > > > > > > and server-push. You might want to look at this docs: > > > > >http://docs.codehaus.org/display/JETTY/GWT+RPC+Exampleshttp://code.go.. > > > > > .. > > > > > > > .. > > > > > > > > And also comment on this bug if you have any problems or even > if > > > you > > > > > > > > succeed: > > > > >http://code.google.com/p/google-web-toolkit/issues/detail?id=267 > > > > > > > > > > Hope it helps, > > > > > > > > > > Salvador > > > > > > > > > > On Apr 23, 9:40 am, "[email protected]" < > [email protected] > > > > > > > > > > wrote: > > > > > > > > > > > I open two clients, and trying to send a message from one > to > > > > > another. > > > > > > > > > So i have two requests hanging on server's side, and the > third > > > one > > > > > > > > > trying to send the message. > > > > > > > > > the server side is like this : > > > > > > > > > > > @Override > > > > > > > > > public ArrayList<Event> getEvents( Integer > sessionId ) > > > > > > > > > { > > > > > > > > > UserInfo user = getUserById( sessionId );; > > > > > > > > > ArrayList< Event > events = null ; > > > > > > > > > > > if( user != null ) > > > > > > > > > { > > > > > > > > > if( user.events.size() == 0 ) > > > > > > > > > { > > > > > > > > > try > > > > > > > > > { > > > > > > > > > synchronized( user > ) > > > > > > > > > { > > > > > > > > > user.wait( > > > 20*1000 > > > > > ); > > > > > > > > > } > > > > > > > > > } > > > > > > > > > catch ( > InterruptedException > > > > > ignored ) > > > > > > > {} > > > > > > > > > } > > > > > > > > > synchronized( user ) > > > > > > > > > { > > > > > > > > > events = user.events; > > > > > > > > > user.events = = new > > > > > ArrayList<Event>(); > > > > > > > ; > > > > > > > > > } > > > > > > > > > } > > > > > > > > > return events; > > > > > > > > > } > > > > > > > > > > > And the sendEvent() on the server side is like this : > > > > > > > > > > > @Override > > > > > > > > > public void sendEvent( Integer senderId, Integer > > > > > recieverId, > > > > > > > String > > > > > > > > > message ) > > > > > > > > > { > > > > > > > > > System.out.println( senderId + "entered the > > > > > sendMessage > > > > > > > > > method" ); > > > > > > > > > > > UserInfo reciever = getUserById( recieverId > ); > > > > > > > > > MessageEvent me = new MessageEvent( > senderId , > > > > > message > > > > > > > ); > > > > > > > > > > > if( reciever != null ) > > > > > > > > > { > > > > > > > > > synchronized( reciever ) > > > > > > > > > { > > > > > > > > > reciever.events.add( me ); > > > > > > > > > reciever.notifyAll(); > > > > > > > > > } > > > > > > > > > } > > > > > > > > > } > > > > > > > > > So I have two clients opened in hosted mode. For debugging > > > > > > > > > i put System.out.println( senderId + "entered the sendEvent > > > method" > > > > > ); > > > > > > > > > command at the enter > > > > > > > > > to sendEvent() method. And the message "senderId entered > the > > > > > sendEvent > > > > > > > > > method" appeared, only when > > > > > > > > > one of the clients exited the getEvents(). So maybe the > problem > > > is > > > > > > > > > that both clients are opened at the same > > > > > > > > > computer, or maybe it's because of hosted mode ? > > > > > > > > > > > On Apr 22, 11:56 pm, Vitali Lovich <[email protected]> > wrote: > > > > > > > > > > > > Most browsers only support 2 outstanding AJAX events - > that > > > may > > > > > be > > > > > > > what you > > > > > > > > > > are running into. Without knowing what other calls you > make, > > > I > > > > > > > cannot make > > > > > > > > > > a recommendation. > > > > > > > > > > > > One thing that does come to mind is that I hope you only > call > > > > > > > getEvents once > > > > > > > > > > on startup. > > > > > > > > > > > > On Wed, Apr 22, 2009 at 4:47 PM, [email protected] > > > > > > > > > > <[email protected]>wrote: > > > > > > > > > > > > > Hi. > > > > > > > > > > > I'm trying to implement chat on my GWT app. So client > has > > > > > > > getEvents() > > > > > > > > > > > function implemented like this : > > > > > > > > > > > > > public void getEvents( ) > > > > > > > > > > > { > > > > > > > > > > > networkSvc.getEvents( > > > > > > > > > > > new AsyncCallback< > ArrayList<Event> > > > >() > > > > > > > > > > > { > > > > > > > > > > > public void onSuccess( > > > > > ArrayList< > > > > > > > Event > > > > > > > > > > > > events ) > > > > > > > > > > > { > > > > > > > > > > > handleEvents( > events > > > ); > > > > > networkSvc.getEvents( > > > > > this > > > > > > > ); > > > > > > > > > > > } > > > > > > > > > > > public void onFailure( > > > Throwable > > > > > > > caught ) > > > > > > > > > > > { > > > > ... > > > > read more ยป > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" 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/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
