Introducing: Wand - The Hazaar Mini Web server for real-time signalling. #32
Labels
No labels
bug
confirmed
critical
database
discussion
documentation
email-support
enhancement
feature
suggestion
support
warlock
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference: hazaar/hazaar-mvc-old#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
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.
Status changed to closed
mentioned in issue #33