Wishlist: Websocketd Gateway Support

Bug #1777180 reported by Bill Erickson on 2018-06-15
This bug affects 2 people
Affects Status Importance Assigned to Milestone

Bug Description

This is a continuation of my dev list email:


and associated wiki page:


The goal is to add support for using Websocketd as our websockets OpenSRF gateway. The primary benefits are gateway stability and code maintainability.

I've performed a variety of load tests (scripts included in branch) and every day use with the websocketd gateway. So far, it's been rock solid. More testing will tell, but if all goes well, I think we should consider this a replacement for the Apache websockets personality.

Cleaned up, rebased branch en route with docs.

Bill Erickson (berick) on 2018-06-15
Changed in opensrf:
status: New → In Progress
Bill Erickson (berick) on 2018-06-15
Changed in opensrf:
status: In Progress → New
assignee: Bill Erickson (berick) → nobody
Jeff Davis (jdavis-sitka) wrote :

We've been running this branch in various test environments for about a week with no issues that I've noticed so far. I may try it out in production as early as next week, mainly to see if it helps with bug 1774703.

Bill Erickson (berick) wrote :

Thanks, Jeff. I've been running the code in various test environments as well. No issues thus far. Of course, the real test will be running in a variety of production environments.

I'm going to add a pullrequest tag for higher visibility.

Given how trivial it is to add a systemd configuration for start/stop control of the websocketd-osrf process, I was not planning to add a custom script for this. However, if we want to have one in the repo as a generic (non-systemd) start/stop control script, I can add one.

Bill Erickson (berick) wrote :
tags: added: pullrequest
Jeff Davis (jdavis-sitka) wrote :

We've been running websocketd on two of our production servers since last week. No problems so far. I'm planning to switch our remaining servers from apache2-websockets to websocketd later this week.

Attached is an init script (/etc/init.d/websocketd) which we're using in our Ubuntu 14.04 environment, where systemd is not yet available.

Bill Erickson (berick) on 2018-07-11
Changed in opensrf:
milestone: none → 3.1-beta
Jeff Davis (jdavis-sitka) wrote :

Still no issues yet in Ubuntu 14.04 testing and production environments. I'll be trying it out on Ubuntu 16.04 next month, but I went ahead and signed off already: user/jeffdavis/lp1777180-websocketd-gateway-signoff

tags: added: signedoff
Jason Stephenson (jstephenson) wrote :

I've been testing this on two VMs with Ubuntu 16.04. So far it has worked without load.

I have also been using it without a proxy set up. We might want to amend the installation instructions to include how to run it so it works without a proxy. I've found that the following command line basically works:

sudo -b nohup /usr/local/bin/websocketd --port 7682 --ssl --sslcert=/etc/apache2/ssl/server.crt --sslkey=/etc/apache2/ssl/server.key /openils/bin/osrf-websocket-stdio

It should be noted that you should combine your cert and separate certificate chain file or CA certs into one file.

Jason Stephenson (jstephenson) wrote :

Interestingly, I find that websocketd does not need nohup to continue running in the background after the user who started it logs out, so it must take some of the steps required to daemonize the process. I will see about adding instructions for running it with SSL minus the proxy and adding them to the README and signing off on the branch.

Changed in opensrf:
status: New → Confirmed
assignee: nobody → Jason Stephenson (jstephenson)
Jason Stephenson (jstephenson) wrote :

I added my signoff branch with an additional modification to the README to given an example of running websocketd without a proxy.

I also wonder if we should continue to mention apache2-websocket or if it should be remove from the README.

My signoff branch is here: collab/dyrcona/lp1777180-websocketd-gateway-signoff


Changed in opensrf:
assignee: Jason Stephenson (jstephenson) → nobody
Ben Shum (bshum) wrote :

Worked for me too. Pushed to OpenSRF master.

Changed in opensrf:
status: Confirmed → Fix Committed
Ben Shum (bshum) wrote :

Need to get unzip for the websocketd instructions. Added it to the makefile (and zip too for good measure)



Jason Stephenson (jstephenson) wrote :

Signed off and pushed Ben's prereq. update to master for completeness' sake.

Galen Charlton (gmc) on 2019-01-10
Changed in opensrf:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments