Module Assembly - TopCoder Competition Engine - Connecting Web Socket Listener and Main Listener

Key Information

Register
Submit
The challenge is finished.

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.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30041051