WebSocket - Javascript client says connected, but Java server doesn't -


i have simple code, yet, doesn't work perfectly.
in java server says hello , bye when opening , closing connection , prints sent message:

@applicationscoped @serverendpoint("/tictactoe") public class websocketserver {     private logger logger = logger.getlogger(this.getclass().getname());      @onopen     public void open(session session) {         logger.info("websocket: hello - " + session.getid());     }      @onclose     public void close(session session) {         logger.info("websocket: farewell - " + session.getid());     }      @onmessage     public void messagehandler(string message, session session) {         logger.info("websocket: new message - " + message);     } } 

in javascript pretty same in server , sends message when clicking button:

var socket = new websocket("ws://localhost:8080/tictactoeztp/tictactoe");     socket.onopen = function (event) {         console.log("websocket: connected");         console.log("websocket: " + checkconnection(socket.readystate));     };     socket.onclose = function (event) {         console.log("websocket: disconnected");     };     socket.onerror = function(event) {         console.log("websocket: error");     };     socket.onmessage = function (event) {         console.log("websocket: new message - " + event.data);     };      function checkconnection(readystate) {         switch(readystate){             case 0: return "connecting";             case 1: return "open";             case 2: return "closing";             case 3: return "closed";             default: return "undefined";         }     }      $("#send").click(function () {         var msg = {             type: "message",             text: "zaladzi"         };         socket.send(json.stringify(msg));     }); 

now time problem. after refreshing page established connection.
what script says:

websocket: connected websocket: open 

but server doesn't open new one. in fact need couple of refreshes open new connection on server.
what server says:

info:   websocket: hello - 29538711-f815-4c59-835e-97aaaac1d112 info:   websocket: farewell - 29538711-f815-4c59-835e-97aaaac1d112 

i'm using payara 4.1 server. how solve issue?
tl/dr javascript client says connection opened, java client says there no such connection.

this due bug in payara server fixed https://github.com/payara/payara/issues/536 in bug onopen isn't called in server when socket reused.

you try pre-release version of payara ensure fixed. pre-release builds available the payara website new pre-release build created , uploaded every time jenkins ci server completes github merge build.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -