Which is better: multiple web socket endpoints or single web socket endpoint in Java EE7

Archimedes Trajano picture Archimedes Trajano · Jun 24, 2013 · Viewed 7.4k times · Source

Java EE 7 allows you to create new endpoints very easily through annotations. However, I was wondering is having multiple endpoints one to handle each message type a good idea or should I have just one endpoint facade for everything?

I am leaning towards having one single end-point facade based on the theory that each endpoint creates a new socket connection to the client. However, that theory could be incorrect and Web Socket may be implemented so that it will use just one TCP/IP socket connection regardless of how many web socket end points are connected so long as they connect to the same host:port.

I am asking specifically for Java EE 7, as there may be other web socket server implementations that may do things differently.

Answer

Archimedes Trajano picture Archimedes Trajano · Jul 11, 2014

Just noticed an ambiguity on my question re: message types. When I say message types I meant different kinds of application messages not native message types such as "binary" or "text". As such I marked @PavelBucek answer as the accepted one.

However, I did try an experiment with Glassfish and having two end points. My suspicions were correct and that there is a TCP connection established per connected endpoint. This would cause more load on the server side if there is more than one websocket endpoint being used on a single page.

As such I concluded that there should be only one endpoint to handle the application messages provided that everything is a single native type.

This would mean that the application needs to do the dispatching rather than relying on some higher level API to do it for us.