Pixel Streaming Matchmaking issue: ‘WARNING: No empty Cirrus Servers are available’

I’ve been working on issue for some days, but I can’t figure out any solutions…

I’m testing this in Local computer.

  • I’m using default Pixel Streaming Matchmaker from github ‘EpicGames/PixelStreamingInfrastructure’.

  • I’m also using default Start_SignallingWebServer.ps1 from same repository.

  • I’ve Opened Port in my Windows Firewall Advanced Settings.

  • I found similar question asked here, but there were answers on.

  1. When I Open Matchmaker by open ‘run.bat’ from ‘PixelStreamingInfrastructureMatchmakerplatform_scriptscmd’, it works well.

Matchmaker run.bat

  1. After Open Matchmaker, I Open Start_SignallingWebServer with PowerShell,
    and it connects to Matchmaker without issue.

SignallingWebServer connect to Matchmaker

  1. Then I Open Unreal Instances(Application that I built from Unreal Project with Pixel Streaming Plugin)
    it Connects to SignallingWebServer without issue.

Unreal Instance connected to SignallingWebServer

  1. When I checked matchmaker.js from ‘PixelStreamingInfrastructureMatchmaker’, I found in function ‘getAvailableCirrusServer()’, when cirrusServer’s numConnectedClients is 0, and ready is true, it returns cirrusServer itself.

Matchmaker getAvailableCirrusServer()

  1. So, in the ‘ping’ message from matchmaker, I added console.log which is

Matchmaker Ping Message Log

console.log(Number of Clients in ${cirrusServer.address}:${cirrusServer.port}: ${cirrusServer.numConnectedClients}, ${cirrusServer.ready});

When I check this log in Matchmaker’s run.bat file running, it shows log

Matchmaker console log
’11:17:59.646 Number of Clients in MyIPAddress: 0, true’

This means that getAvailableCirrusServer() have to return cirrusServer, as there is no clients connected to signallingwebserver that I opened, and also instance is connected to signallingwebserver, so Matchmaker should be able to redirect any clients connected to itself to signallingwebserver.

But it doesn’t work as I imagined. When I open Chrome browser and enter to Matchmaker’s IP Address and Port,

Matchmaker not working

it shows message like this – ‘WARNING: No empty Cirrus servers are available’.

This log should be printed when getAvailableCirrusServer() failed to find any cirrusServer (which is SignallingWebServer).

But as you see in the picture (Matchmaker getAvailableCirrusServer), I’ve added some console.log to check whether the function enters if branch, and it actually enters, as you see in the picture above.

However, at the same time, it also shows log outside the loop, which is very awkward to me… because when the function already enters if statement, it has to return cirrusServer and get out from the function, but it is not working like that right now.

I want to know why the logs that shouldn’t be printed at same time is actually printing at same time, and ultimately solve this Matchmaking server issue (No empty Cirrus Servers)…

Would be grateful if someone provide me any ideas!