Over a million developers have joined DZone.

Using Socket.IO with the Java API for WebSocket?

· Java Zone

Easily build powerful user management, authentication, and authorization into your web and mobile applications. Download this Forrester report on the new landscape of Customer Identity and Access Management, brought to you in partnership with Stormpath.

If you have looked into how to use WebSocket with emergent JavaScript frameworks like Angular, Backbone, Ember or Knockout, it's very likely you've come across Socket.IO. While Socket.IO is a very useful library, it is mostly geared towards Node.js and significantly different from plain WebSockets as defined by the IETF and the W3C as well as the JCP/JSR 356 (the Java API for WebSocket). However, with a little bit of hacking, it's not too hard to get the Socket.IO client library to work with the Java API for WebSocket.

Lee Chuk Munn from the Advanced Technology Applications Practice for the National University of Singapore, Institute of Systems Science describes the problem space well and shows you how to hack a basic solution. Chuk plans on working on a framework that builds a more complete solution to marry Socket.IO and JSR 356. He used GlassFish 4 and NetBeans 7.4 for his work. Does this inspire you to hack a framework on top of JSR 356, join Chuk in his efforts or contribute to the GlassFish community in the New Year :-)?

Building Identity Management, including authentication and authorization? Try Stormpath! Our REST API and robust Java SDK support can eliminate your security risk and can be implemented in minutes. Sign up, and never build auth again!


Published at DZone with permission of Reza Rahman, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}