WebSDK: Accelbyte Multiplayer Servers

Looking to start integrating our dedicated server with AMS, does the WebSDK support this? If not, what would the recommendation be on how to start going about this?

Thanks!

Hello @njupshot

Although our WebSDK is capable of handling all AMS service calls, the sdk currently lacks some functionality to integrate DS with AMS out of the box.

It should be possible to integrate with a little effort, using a websocket to send and receive Json.

We are going to create a document about the steps to integrate this with our WebSDK, will share it with you here once we have it.

Please give us a couple of days to get it ready.

Let me know if we can help you with something else meanwhile.

Great thank you Ivan! Looking forward to hearing back from the team.

Thanks,
Nick

Hello @njupshot

Some updates about this topic:

WebSDK is not needed for a custom integration of a NodeJS DS, you should just implement Websocket and follow the protocol from this document.

Let us know if that helps

Thanks Ivan, I’ll give that a shot.

Hey @IvanM the team and I are just getting back around to integrating our NodeJS dedicated server with AMS. I’ve got the server integrated with the watchdog and things are looking good using the amssim command line tool.

However, it looks like integrating with watchdog is not enough. Do I need to integrate with the “hub”? Does the typescript SDK support this?

Thanks,
Nick

Hi @njupshot,
For the DS Hub, you don’t need the Web SDK. For reference, here is the DS flow from Unreal OSS:

  1. Connect to Watchdog (websocket).
  2. Log in using DS IAM credentials.
  3. Send “ready” to Watchdog.
  4. Listen for the drain signal from Watchdog.
  5. Fire off heartbeats periodically (by default, it’s every 15 seconds in other SDKs).
  6. Connect to DSHub (websocket: wss://studioname-gamenamespace.prod.gamingservices.accelbyte.io/dshub/).
  7. Listen for the claim signal from DSHub.

Now, your DS will be able to be claimed by the session service. Please note, if for some reason your DS is disconnected from DSHub and fails to reconnect after a few attempts, you need to shut down the DS then the watchdog will spawn another ds to replace the previous DS automatically.

Please let me know if this answer your question.

Thank you for the update. We’re getting a 401 when connecting to the Hub. Seems odd that we’re just establishing a connection with the hub without providing any data via headers and/or additional handshaking. Are there additional steps that are missing from above? How can we diagnose these problems ourselves (a 401 in this case) without having to get AB support or the forums involved?

Hi @njupshot,

I’ll try to gather more information regarding the DS Hub to help unblock your issue. We will share a more detailed flow on how the DS should work with AMS and DSHub. Please give us a couple of days to get it ready.

Hi @njupshot,

I’m back with some additional information that might have been missing from the previous flow I shared with you. To connect with DSHub, you need to include the following headers:

  1. Authorization: Bearer <client_token>
  2. X-Ab-ServerID: <ds_id>

You can use the token that you got after logging in using client credentials (client + secret).

Please let me know if this answers your question. If you have any further questions, please create a new thread since this one has already been marked as solved.