1

I am trying to create a multiplayer experience using several Signalling Webservers hosted on different ports on the same instance/ machine but the Matchmaker is not working right in forwarding clients to unoccupied Signalling Servers.

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

Matchmaker 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

enter image description here

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

Dev Patel
  • 11
  • 2

1 Answers1

1

Your second Signalling Server does not seem to be connected to the Matchmaker server, otherwise on the Matchmaker log you will see another set of this log:

12:47:16.927 Message TYPE: connect
12:47:16.927 Adding connection for localhost with playerConnected: false

You mentioned "Same is for SS2", check there again if it says that the SS2 is really connected to the Matchmaker server.

Don't forget to also start 2 instances of the UE application, each with -PixelStreamingPort=8888 and the other one with -PixelStreamingPort=8887.