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 the solution mentioned there (to turn on Unreal Instances with Matchmaker and SignallingWebServer before connecting to Matchmaker IP) didn’t worked out for me.
This is the steps that I went through.
- When I Open Matchmaker by open ‘run.bat’ from ‘PixelStreamingInfrastructure\Matchmaker\platform_scripts\cmd’, it works well like below
- After Open Matchmaker, I Open Start_SignallingWebServer with PowerShell, and it connects to Matchmaker without issue.
- Then I Open Unreal Instances(Application that I built from Unreal Project with Pixel Streaming Plugin) it Connects to SignallingWebServer without issue.
- When I checked matchmaker.js from ‘PixelStreamingInfrastructure\Matchmaker’, I found in function ‘getAvailableCirrusServer()’, when cirrusServer’s numConnectedClients is 0, and ready is true, it returns cirrusServer itself.
- So, in the ‘ping’ message from matchmaker, I added console.log which is
to print Number of Clients in ${cirrusServer.address}:${cirrusServer.port}: ${cirrusServer.numConnectedClients}, ${cirrusServer.ready}
in Matchmaker run.bat.
When I check this log in Matchmaker’s run.bat file running, it shows log
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,.
This also means, as I know, that 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,
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!