Challenge Overview
↵
Project Overview
Currently, TopCoder Competition Engine used a customized way for communication between the client side (Arena Applet) and the backend listeners. We are planning to implement a Web-based Arena based Web Socket protocol.
Previously, we have run contests to build a standalone web socket listener, which provides a good solution by using the combination of socket.io (web client) and netty.io (server side).
But we found some problems, like data sharing, chat between arena applet and new web based arena.
Competition Task Overview
This contest is going to explore the way to make the web socket listener and main listener connected.
so messages like chat, can be delivered with each other.
Make the Web Socket Listener connect to Main Listener
We'd like to reuse all useful logic in the main listener, so we'd like to make the web socket listener connect to the main listener.
the web socket listener will be a lightweight layer to support web socket, and transfer data from/to the main listener.
We'd like a general extensiable solution, so we can support more messages in the future.
Please consider the extensibilty as a major part for this contest.
Currently, Admin Listener is connected to Main listener for data exchange and broadcast, you can learn and implement similar logic.
Demonstration
In order to demonstrate your solution, you can write some messages that go between main listener and web sockets listener.
for example, a login in main listener, can send messages to web socket listener, and the oppsite way.
You can add more demonstration approach to show us your approach is good and easily extendable.
Arena VM
Before asking your own VM, you need to have a public key on your profile before asking for the VM.
You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
To use the Arena VM, please follow http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Code Changes for the solution
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.