Unreal Engine Pixel Streaming 匹配服务器未工作。

huangapple go评论73阅读模式
英文:

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

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

答案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.

huangapple
  • 本文由 发表于 2023年6月13日 15:56:43
  • 转载请务必保留本文链接:https://go.coder-hub.com/76462786.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定