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 implemented a Web Socket Lisntener and a web demo, which provides a good solution by using the combination of socket.io (web client) and netty.io (server side).
Competition Task Overview
Our new web-based arena will be multiple pages, normally, socket.io will create connection for each page. For this contest, we'd like to see if we can share one socket.io connection across mutliple pages, and properly handle the events in each page.
I have done some initial research, HTML5 Web Storage, seems a working approach to pursue. Please do more researches or suggest a better solution, and demostrate the following questions:
1. Can local storage can be used to share the connection?
2. Can all pages using the shared connection to send and recieve events?
3. When all pages using the shared connection are closed, is the connection closed properly? if not, how to achieve it programitically?
4. Which browsers support local storage to use this functionality, please test and provide the support list.
5. Please write some general data event listeners, like chat to properly demonstrate the cases.
6. By using shared connection, is there any weakness or pitfall?
Please use the source code attached in forum to start your work for this contest.
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.