Java EE 7 Websocket API

Jahas, tuli testailtua hieman upouutta Websocket API:a joka on osa Java EE 7 julkaisua ja jo siis käytössä ja pelaa. Ytimeltään yksinkertainen kapistus; lisä-annotaatioilla voi tehdä serveripulikan joka voi puskea yhdelle tai useammalle asiakkaalle päivityksiä Websocket standardin mukaan. Päädyin yksinkertaiseen testikoodiin:

 

@ServerEndpoint("/chat")
public class ChatSocket {
  @OnMessage
  public String onMessage(String message) {
      try {
        Thread.sleep(5000);  // Wait 5sec to simulate asynch operations
      } catch (InterruptedException ex) {
          ex.printStackTrace();
      }
      return "BACK AT YA:" + message;
  }

}

Client päässä jotain tällaista:

var wsUri = "ws://" + document.location.host + "/WebSocketTest/" + "chat";
var ws = new WebSocket(wsUri);
ws.onmessage = function (evt) { var received_msg = evt.data; alert("Message is received..." + received_msg); };
ws.send("Message to send");

 

Testaillessa menikin sitten hetki ihmetellessä miksei toimi. Onneksi tajusin vaihtaa selainta. Jostain kumman syystä oman koneen Chrome eteni openiin asti, mutta send jäi juntturaan. Firefox pelitti hienosti. Tämä havainto pitää yhtä pessimistisen näkemykseni kanssa siitä miten tulevat web ’standardit’ tulevat toimimaan eri selaimissa ja mobiililaitteissa. Tosin tämäkin varmaan fiksattavissa ja voi olla palvelinpuolenkin oireilua, mutta pääpointti on se että triviaali demo toimii yhdessä, ei toisessa. Hieman hienosäätöä siis vaaditaan vielä.

 

Mutta hauskaa, helppoa tekniikkaa. Tällä voi rakennella chattikanavia, osakekurssi push päivityksiä, tai mitä eventtejä nyt haluaa seuratakaan, erilaisia jaettuja brainstorming whiteboardeja, dashboardeja, sävellysvimpaimia, etc.

 

 

Advertisements

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s