I have a manual install of Xibo CMS but am unable to use websockets with the Windows player through Cloudflare.
I have the websockets address in the CMS set to wss://xibo-ws.example.com, I have also tried to set the port to 443 and it never connects.
It does connect if on the same local network and it is set to ws://[IP address]:8080
When going over the Internet it is passed through Cloudflare and then a HAProxy server. I know this works as I have connected to XMR through a websockets client from my Android phone and I see messages in the XMR logs like this:
I’m not an expert but my guess would be Cloudflare not proxying those correctly.
It looks like you have to enable websocket connections to the origin, and that they’re not compatible with argo tunnels (which I think is the old name for Cloudflare Tunnels?)
The websocket connection works. I used a websocket testing app from my phone using my phone’s network connection. It connects through and you can see that XMR sees the connection and ignores the message because it was just plaintext.
I see nothing in the XMR logs from the Xibo client using the identical address.
With Wireshark I can see it never even attempts to make the connection. No DNS request. Nothing. The client never even attempts to connect when the websockets link is set to wss://host.example.com. If it is set to ws://[IP address]:port it does.
I’m not sure why that should be. The team here have double checked a Windows 407.2 Player and it’s connecting to WebSockets as expected.
If you create a trial Cloud CMS and connect there does it work?
Just to double check, you should have XMR_PUB_ADDRESS set to the old ZeroMQ address, and XMR_WS_ADDRESS should either be empty if you’re using a standard Docker setup, or your wss://hostname.example.org address if you’re running a separate XMR server.
The Wireshark thing is pretty solid evidence the client isn’t even attempting the connection. Before you assume it’s just a 407.2 bug, have you tried clearing the player’s local cache or config? Sometimes these players store connection attempts in weird places and if it fails once it can get stuck trying the fallback (the local IP). Might be worth a fresh config push or even a reinstall to see if it picks up the wss address fresh.
I rebuilt the server from scratch and in doing that have got the websockets connection to happen. Now it is causing XMR to crash. I even tried to use the XMR OCI container image and that would crash too. I think I am getting somewhere. I want to make sure I have this all working before upgrading my production server.
Aftera few restarts of the client, I have both the Windows client and the Electron client working. The Electron client still refuses to download any content though.