Our game is releasing soon and we are most definitely using beacons over Steam sockets.
To clarify my earlier post, there are a few snags you may run into due to fact that Unreal treats Steam channels as ports when they’re not exactly 1:1 in functionality. For example, typically sockets will use an arbitrary (different) client port to connect to a specific server port. With Steam sockets, however, client must be using same channel as server in order to communicate. As a result, there are a few hiccups:
- When closing and reopening connections on same channel you may receive some old data on socket. This can cause a variety of problems.
- If attempting to communicate via several beacons simultaneously on same channel you will run into issues where one beacon client will receive a packet meant for another beacon client and discard it.
- Steam connection lifetimes can be managed a bit more efficiently to mitigate some of these issues. My pull request is bulk of that work.
So, in short, it mostly works but, depending on your use case, be prepared to deal with these edge cases appropriately.