Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Steam realms #863

Open
xPaw opened this issue Jun 11, 2020 · 6 comments
Open

Add support for Steam realms #863

xPaw opened this issue Jun 11, 2020 · 6 comments

Comments

@xPaw
Copy link
Member

xPaw commented Jun 11, 2020

There's new realm field in various protos and apis that is worthwhile to support.

GetCMList for example has steamrealm=steamchina

@yaakov-h
Copy link
Member

Notes:

  • We have ESteamRealm already with the correct values.
  • CMsgProtoBufHeader.realm - need to check if/when Steam client sets or expects this.
  • CCloud_ClientBeginFileUpload_Request - need to check if/when Steam sets this.
  • Need to see what happens if you try log in to a Global server with China set in the protos, or vice-versa; or if a CM supports both, then why does GetCMList have it as a parameter?

@JustArchi
Copy link
Contributor

why does GetCMList have it as a parameter?

Likely because SteamCN have their own servers which aren't global like "our" realm. It's indicator which serverlist to return.

@yaakov-h
Copy link
Member

then why would steam client ever need it in the proto header?

I need to see what the client actually does, but I wonder if that field is actually designed for server-to-server comms.

@xPaw
Copy link
Member Author

xPaw commented Jun 15, 2020

then why would steam client ever need it in the proto header?

CMList still returns the same CM servers, so server alone isn't able to tell whether it's PW/China only. It only returns special servers if you use Shanghai cell and steamchina realm, but after these servers, normal servers come in the list.

@cherinyy

This comment was marked as outdated.

@cherinyy
Copy link

cherinyy commented Feb 9, 2022

then why would steam client ever need it in the proto header?

I need to see what the client actually does, but I wonder if that field is actually designed for server-to-server comms.

I can provide a test account if you need it.

According to my usage, Steam China's CM servers communicate independently. If I run ArchiSteamFarm and Steam China at the same time, I cannot notify ArchiSteamFarm on Steam China to suspend the game, the message is unreachable. The same is true for friends online status/chat.


But this may be limited on the server side, as far as I know, CS:GO on Steam Global uses -perfectworld to enter the Perfect World server, which still calls Steam Global Client's CM (realm=steamglobal).

So although the CM servers in the Chinese mainland are dedicated to Steam China (on CMList), through tools, we can force the designated CM servers to be used in the Steam Global Client (realm=steamglobal).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants