Socket Server for Managing Persistent Connections and Functional Tests
Problem Statement: We need a socket server that can reliably tie together an arbitrary number of points in our system. Our system comprises of objects that will communicate with the socket server via http:post, and other objects that will maintain persistent socket connections with the socket server. Hence, this socket server must simultaneously manage multiple persistent socket connections, receive post information and forward that information to the correct socket, and initiate http:posts that are triggered by packets on the persistent sockets. We are having trouble working out the bugs in our current socket server and need an alternative. At this juncture we are concerned primarily with stability, gracefull recovery from errors and ease of debugging. Performance is secondary with the caveat that everything needs to be non-blocking. Timeline: We think this could be written and tested in a few days by a capable programmer, possibly a few more days if we need to do some modifications and integration with our existing system. We have a specification ready for you. Environment: Our current server side code is in Python, with the Eventlet library. We will accept a system written in Python (as long as the framework has an active community, which it turns out Eventlet doesn't), Node.js or Java. The code is deployed on a Linux AWS instance. Objectives: 1. Manage multiple persistent socket connections from external users. Handle socket timeouts gracefully. 2. When a message is received on a socket, have logic that handles this and can do an http:post to another service. These posts should be non-blocking. 3. Accepts http:post and forwards this to the correct socket/user. 4. Gracefully manage socket connections, disconnections and errors. Specifically, when a new socket connection opens the service needs to post a message to another service, and this also should happen on a disconnect. The disconnect management could happen via a heartbeat of some sort. 5. Good logging capability. Testing: One thing that has caused us tremendous hassle is testing our socket server, so we would like a mechanism for testing the server automatically.We want the ability to fire up multiple client sockets and then send messages to them via the service we are describing from another service, via an http:post, and keep this going from between a few minutes to a day or so. This should be an independent piece of code. Load testing doesn't concern us too much at this stage. Desired Skills: Linux, TCP/IP, Web Services, Network Programming Keywords: Web Programming, Linux, Service, Programming, Network, Web, IP, TCP
| Expired |
More linux projects
View AllMore tcp/ip projects
View AllRelated projects
Search for freelance jobs
"I did not know what to expect at first. But my final impression once I used your site and service is a great one! Simply amazing!
I would recommend this service to any other freelance artists and co workers who are looking to expand their client base."
"The possibility to include all information about my freelance working places in just one website. It means, I don't need to tell my future employer to go to odesk, elance, etc. They can check everything about me in donanza website."




