users@glassfish.java.net

AW: AW: Websockets with 4.0b81 - pending / half-open connections

From: Bjoern Wuest <bjoern.wuest_at_gmx.net>
Date: Tue, 2 Apr 2013 16:14:55 +0200

Dear Pavel and all,


Took me quite some time to respond. As suggested I have tested the code
(both mine and yours) on Glassfish 4b82 (promotional build from March 27th).
I tested it on my Win7 notebook with Oracle JDK7u17 as well as a Ubuntu
64bit Virtualbox machine using OpenJDK7. In both environments both codes did
not work, resulting in the same log and error messages as with 4b81 .

Any further hints?


Regards
  Bjoern


-----Ursprüngliche Nachricht-----
Von: Pavel Bucek [mailto:pavel.bucek_at_oracle.com]
Gesendet: Mittwoch, 27. März 2013 08:46
An: users_at_glassfish.java.net
Betreff: Re: AW: Websockets with 4.0b81 - pending / half-open connections

Can you please try latest nightly?

http://dlc.sun.com.edgesuite.net/glassfish/4.0/nightly/glassfish-4.0-b82-03_
26_2013.zip

and if it still does not work, can you provide more details about your
setup? (os?)

Thanks,
Pavel

On 3/27/13 7:27 AM, Bjoern Wuest wrote:
> Dear Pavel,
>
>
> I have tried your sample even I do not see much difference to my code.
> I tested it on Glassfish 4b81, i.e. the same Glassfish that I had run
> my stuff. This version is the latest Glassfish version currently
available.
> What I did is compiling and deploying the Webapp, opening in Chrome
> v25, clicking "Connect" button and then "Send" button.
>
> Here is the output from the server:
> <click Connect> Someone connected...
>
> And here from the client:
> <click Connect> CONNECTED to
> ws://localhost:8080/sample-simplelife/simplelife
> <click Send> Error: InvalidStateError: DOM Exception 11
>
>
> According to Chrome, the Websocket is still pending to be opened, i.e.
> receive the response from the server. Yet, the readyState of the
> Websocket is 1.
>
> Unfortunately I cannot install a packet sniffer like Wireshark to see
> if the server responds anything to the browser.
>
>
> Regards
> Bjoern
>
>
> -----Ursprüngliche Nachricht-----
> Von: Pavel Bucek [mailto:pavel.bucek_at_oracle.com]
> Gesendet: Dienstag, 26. März 2013 23:51
> An: users_at_glassfish.java.net
> Betreff: Re: Websockets with 4.0b81 - pending / half-open connections
>
> Hi Bjoern,
>
> can you please try running Tyrus sample? For example this one:
>
> http://java.net/projects/tyrus/sources/source-code-repository/show/tru
> nk/sam
> ples/simplelife?rev=549
> (includes simple js client)
>
> should do what you want. (you might need to use newer glassfish build,
> there was new release of websocket-api in the meantime).
>
> Also, you can use users_at_tyrus.java.net mailing list.
>
> Regards,
> Pavel
>
> On 3/26/13 9:22 PM, bjoern.wuest_at_gmx.net wrote:
>> Good evening,
>>
>>
>> I am trying html5 websocket technology with Glassfish. I use the
>> Glassfish 4 b81 with JSR-356 support built-in. Yet, I fail to
>> actually really open a websocket. In google Chrome, it says that the
>> websocket connection is pending. When I try to send something from
>> the browser to the server via the websocket, I will get
>> invalidDOMException with code 11. Sending something from the server
>> to the client does not result in any exception (or even log message)
>> but message is never received at the browser.
>>
>>
>> Here is my server-side code:
>>
>> @ServerEndpoint(value="/ws") public class CWSHandler {
>> @OnOpen public void open(Session S) {
>> System.out.println("### NEW CONNECTION OPENED ###");
>> }
>>
>> @OnMessage public void process(ByteBuffer Data, Session S) {
>> System.out.println("### GOT MESSAGE ###");
>> }
>>
>> @OnError public void error(Session S, Throwable Cause) {
>> System.out.println("### HAVE ERROR ###");
>> if (null != Cause) { Cause.printStackTrace(); }
>> }
>>
>> @OnClose public void close(Session S, CloseReason Reason) {
>> System.out.println("### CONNECTION CLOSED ### " +
>> Reason.getReasonPhrase());
>> }
>> }
>>
>>
>> And here is the client code:
>>
>> var commChannel = new WebSocket(wsURI); commChannel.onerror =
>> function
>> (evt) { console.log("Error: " + evt); }; commChannel.onopen =
>> function
>> (evt) {
>> console.log("Connection opened: " + evt);
>> try { commChannel.send("Hello world"); }
>> catch (err) { console.log(err); }
>> };
>> commChannel.onclose = function (evt) { console.log("Connection closed:
>> " + evt); };
>> commChannel.onmessage = function (evt) { console.log("Received
>> message from websocket: " + evt); };
>>
>>
>>
>> The output on the server is:
>>
>> [2013-03-26T20:23:34.949+0100] [glassfish 4.0] [INFO] [] [] [tid:
>> _ThreadID=30 _ThreadName=Thread-3] [timeMillis: 1364325814949]
>> [levelValue: 800] [[
>> ### NEW CONNECTION OPENED ###]]
>>
>>
>> The output on the client is:
>> Connection opened: [object Event] line 4
>> Error: InvalidStateError: DOM Exception 11 line 6
>>
>>
>>
>> What am I missing?
>>
>> Regards
>> Bjoern
>>
>