英文:
Unreal Engine Pixel Streaming Matchmaker Server Not Working
问题
I'll provide a translation of the technical content you provided:
我正在尝试创建一个多人游戏体验,使用托管在同一实例/机器上不同端口上的多个信令服务器,但匹配器在将客户端转发到未占用的信令服务器方面存在问题。
我已经创建了一个像素流应用程序,现在我希望能够在单个实例上使用多个堆栈,将每个客户端连接到他们特定的游戏实例,并启用多人游戏,我正在使用匹配器来实现这一点,所以每当客户端转到本地主机时,他会自动转发到本地主机的端口70或80,这取决于占用情况。
但是,当我启动匹配器,然后使用以下配置启动2个信令服务器,并转到本地主机:90时,它会显示“所有2个Cirrus服务器正在使用中。在...秒后重试。”
此外,我已经在信令服务器的config.json中设置了MatchmakerAddress为“localhost”,所以应该从那里将我转发,但也不起作用。
这是匹配器的config.json:
{
"HttpPort": 90,
"UseHTTPS": false,
"MatchmakerPort": 9999,
"LogToFile": true
}
这是信令服务器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
}
这是信令服务器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
}
信令服务器日志:
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
与SS2相同
匹配器日志:
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
警告是当我转到localhost:90(匹配器端口)时出现的,而ping是当我转到信令Web服务器的单独端口,即localhost:80。
此外,这是localhost:90的网页:
没有错误,手动访问信令Web服务器可行,但匹配不起作用。我已经花了2天的时间尝试解决这个问题,请帮助我,如果您能的话,我将非常感激。
英文:
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
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
答案1
得分: 2
您的第二个信令服务器似乎没有连接到匹配服务器,否则在匹配日志中,您将看到另一组此日志:
12:47:16.927 消息类型:连接
12:47:16.927 为本地主机添加连接,玩家已连接:false
您提到"同样适用于SS2",请再次检查是否确实连接到了匹配服务器。
不要忘记启动两个UE应用程序实例,一个使用-PixelStreamingPort=8888
,另一个使用-PixelStreamingPort=8887
。
英文:
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
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论