Introducing: Wand - The Hazaar Mini Web server for real-time signalling. #32

Closed
opened 2014-07-29 23:40:29 +00:00 by jamie · 3 comments
jamie commented 2014-07-29 23:40:29 +00:00 (Migrated from git.hazaar.io)

This is still in the early planning stages, but one problem I've been having is connections from the warlock client via the web server. If the web server does any sort of connection limiting then clients can be stuck not receiving signals. I would also like the warlock client to support WebSockets eventually and I will need a separate server to support this.

To that end, I would like to create my own mini multi-threaded web server with the sole purpose of supporting connections for real-time signalling. When a connection is established it will be determined if it is a HTTP request or a WebSocket connection and handled appropriately. The web server will then connect to the existing warlock instance in the same was that apache does.

In the end doing it this way will allow a mix of connection methods depending on what capabilities and dependencies are in place. The web server will need PHP's pthreads module so if that is not installed, then the it will fall-back to connecting via the web server as it does now. On the client side, if WebSockets is not available then it will fall-back to long-polling.

This is still in the early planning stages, but one problem I've been having is connections from the warlock client via the web server. If the web server does any sort of connection limiting then clients can be stuck not receiving signals. I would also like the warlock client to support WebSockets eventually and I will need a separate server to support this. To that end, I would like to create my own mini multi-threaded web server with the sole purpose of supporting connections for real-time signalling. When a connection is established it will be determined if it is a HTTP request or a WebSocket connection and handled appropriately. The web server will then connect to the existing warlock instance in the same was that apache does. In the end doing it this way will allow a mix of connection methods depending on what capabilities and dependencies are in place. The web server will need PHP's pthreads module so if that is not installed, then the it will fall-back to connecting via the web server as it does now. On the client side, if WebSockets is not available then it will fall-back to long-polling.
jamie commented 2014-07-30 00:33:51 +00:00 (Migrated from git.hazaar.io)

The goal here has now changed. Wand is not going to be created. Instead, Warlock is going to implement a WebSocket server as the protocol between the apache client connection and itself. Then, instead of using a unix socket file for communication we change it to use a TCP socket which can then listen on 0.0.0.0 and also accept connections directly from the client browser.

Doing it this way will:

a) Make for less moving parts.
b) Essential turn the Apache warlock controller into a HTTP->WebSocket proxy/protocol converter.

The goal here has now changed. Wand is not going to be created. Instead, Warlock is going to implement a WebSocket server as the protocol between the apache client connection and itself. Then, instead of using a unix socket file for communication we change it to use a TCP socket which can then listen on 0.0.0.0 and also accept connections directly from the client browser. Doing it this way will: a) Make for less moving parts. b) Essential turn the Apache warlock controller into a HTTP->WebSocket proxy/protocol converter.
jamie commented 2014-07-30 00:33:53 +00:00 (Migrated from git.hazaar.io)

Status changed to closed

Status changed to closed
jamie commented 2014-07-30 00:36:28 +00:00 (Migrated from git.hazaar.io)

mentioned in issue #33

mentioned in issue #33
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: hazaar/hazaar-mvc-old#32
No description provided.