Hi I just wanted to report an issue I found (and maybe have patched around).
I’ve built a system where I run multple instances of anUnreal client on the same VM. Each is joined to a different online multiplayer session and each run an AI camera to ‘broadcast’ the scene out to a PixelStreaming system that feed directly into a CDN that can be viewed by any number of non-participating users. Capturing the Vivox voip has been an issue:
- I had to intercept all the audio data and inject into the Unreal AudioMixer - fixed.
- [THE BUG] the multiple instances would interfere with each other such that sometimes when a client would start up and join a channel, an existing client (completely different windows process) would lose connection with Vivox.
Using sysinterals procmon64 I discovered that the second process would start using the same UDP port as the first one. e.g. Process1 might be send/recieve on port 18000 - and stay there, Process 2 starts and uses 23000, but also sends and polls 18000 - which seems to kill Process 1’s communication.
My work around (as of yesterday) is to change VivoxNativeSdk::ConnectorCreate to set minimum_port and maximum_port to distince ranges based on the process instance number.
I would love any feedback on if this is a ‘proper’ solution or if you have a better way to operate multiple processes on the same PC.
Thanks,
DR