Pixel Streaming Matchmaker Not Working

I have created a pixel streaming application now I want to make it so that multiple stacks can be used on a single instance to connect each client to their specific game instance and enable multiplayer and I am using matchmaker for this so whenever a client goes to localhost he get’s automatically forwarded to localhost:70 or 80 depending on occupancy

But when I start matchmaker and then 2 signalling servers with following configuration, and I go to localhost:90, it is saying “All 2 Cirrus servers are in use. Retrying in … seconds.”

Moreover, I have set MatchmakerAddress in Signalling Server config.json as “localhost” so it should forward me from there but that too doesn’t work.

This is Matchmaker config.json

{
	"HttpPort": 90,
	"UseHTTPS": false,
	"MatchmakerPort": 9999,
	"LogToFile": true
}

This is Signalling Server 1 config.json

{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "localhost",
	"MatchmakerPort": 9999,
	"PublicIp": "localhost",
	"HttpPort": 80,
	"HttpsPort": 443,
	"StreamerPort": 8888,
	"SFUPort": 8889
}

And this is Signalling server 2 config.json

{
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "localhost",
	"MatchmakerPort": 9999,
	"PublicIp": "localhost",
	"HttpPort": 70,
	"HttpsPort": 443,
	"StreamerPort": 8887,
	"SFUPort": 8885
}

Signalling Server log:
SS1:

12:15:00.460 Config: {
	"UseFrontend": false,
	"UseMatchmaker": true,
	"UseHTTPS": false,
	"UseAuthentication": false,
	"LogToFile": true,
	"LogVerbose": true,
	"HomepageFile": "player.html",
	"AdditionalRoutes": {},
	"EnableWebserver": true,
	"MatchmakerAddress": "localhost",
	"MatchmakerPort": 9999,
	"PublicIp": "localhost",
	"HttpPort": 80,
	"HttpsPort": 443,
	"StreamerPort": 8888,
	"SFUPort": 8889,
	"MaxPlayerCount": -1
}
12:15:00.487 No peerConnectionConfig
12:15:00.493 Running Cirrus - The Pixel Streaming reference implementation signalling server for Unreal Engine 5.1.
12:15:00.504 WebSocket listening for Streamer connections on :8888
12:15:00.505 WebSocket listening for SFU connections on :8889
12:15:00.506 WebSocket listening for Players connections on :80
12:15:00.517 Http listening on *: 80
12:15:00.519 Cirrus connected to Matchmaker localhost:9999

Same is for SS2

Matchmakers log

12:47:10.361 HTTP listening on *:90
12:47:10.361 Matchmaker listening on *:9999
12:47:16.927 Message TYPE: connect
12:47:16.927 Adding connection for localhost with playerConnected: false
12:47:26.110 WARNING: No empty Cirrus servers are available
12:47:29.300 WARNING: No empty Cirrus servers are available
12:47:32.379 WARNING: No empty Cirrus servers are available
12:47:35.459 WARNING: No empty Cirrus servers are available
12:47:38.536 WARNING: No empty Cirrus servers are available
12:47:46.933 Message TYPE: ping
12:48:16.940 Message TYPE: ping

the WARNING is when I go to localhost:90 (Matchmaker Port) and ping is when I go to individual port of Signalling Web Server i.e. localhost:80

Moreover this is the webpage of localhost:90

There are no errors and manually visiting the Signalling WebServers work but Matchmaking not. I have already spent 2 days trying to figure this out please help me if you can! I would be very grateful



Did you open your Unreal Engine Project? I can’t check log in your Signalling Sever log
I was used Unreal Engine 5.2 Pixel Streaming and Server was working
but access from outside is blocked… “ERR_CONNECTION_REFUSED”
Do you know how to fix it?

Can you try it on the “Arcware CloudRT” Pixelstreaming platform? I think if it’s working locally, then it should also work on CloudRT. it’s a free-to-start pixel streaming cloud.
You don’t have to set up a signaling server there. Arcware manages it automatically. Also if anything comes up, you can ask them directly on customer support.
Technically it’s the best server for pixel streaming, with servers specially made for high-end Unreal Apps. check it out arcware.com

1 Like

Fixed it
Now it work fine.

Sorry guys got a little busy and forgot to mention the fix, the fix that worked for me was that after starting the Signalling Servers and Matchmaker server you also need to open the unreal project for each Signalling Server, unless you do that the error doesn’t go away. As soon as you have started unreal projects for both the SS just go to the Matchmaker port using “localhost:90” or “yourpublicip:90” (Personally I find hosting Matchmaker on port 80 much easier since I don’t have to mention :90 each time), you’ll be automatically redirected to the respective port of the available Signalling Servers. Once occupied no more users can access that port, exactly like it should work!

Thanks for everyone, giving their time in helping me! I just figured out since it was working before and suddenly stopped since I forgot the exact steps, so then I tried to replicate my previous actions and it worked.

Moreover this also indicates that the Unreal engine documentation should also mention clear instructions on how to use Matchmaker services for pixel streaming.

1 Like