var settings = new NetworkSettings();
settings.WithWebSocketParameters(path: "/some/path");
var driver = NetworkDriver.Create(new WebSocketNetworkInterface(), settings);
How can i set this driver in the UnityTransport used by NetworkManager?
where one of the parameters is a Network driver, but I’m not sure if it’s the correct waty to set it, and anyway I cannot understand how to the set the other parameters.
@Ezard is absolutely right. This is not an option today in NGO and you need to use a custom driver constructor to accomplish this. (We probably should offer it out-of-the-box in NGO though. I’ll look into this.)
Something like this should accomplish what you want:
public class CustomWebSocketDriverConstructor : INetworkStreamDriverConstructor
{
public void CreateDriver(
UnityTransport transport,
out NetworkDriver driver,
out NetworkPipeline unreliableFragmentedPipeline,
out NetworkPipeline unreliableSequencedFragmentedPipeline,
out NetworkPipeline reliableSequencedPipeline)
{
var settings = transport.GetDefaultNetworkSettings();
settings.WithWebSocketParameters(path: "/YOUR/PATH/HERE");
driver = NetworkDriver.Create(new WebSocketNetworkInterface(), settings);
driver.RegisterPipelineStage(new NetworkMetricsPipelineStage());
transport.GetDefaultPipelineConfigurations(
out var unreliableFragmentedPipelineStages,
out var unreliableSequencedFragmentedPipelineStages,
out var reliableSequencedPipelineStages);
unreliableFragmentedPipeline = driver.CreatePipeline(unreliableFragmentedPipelineStages);
unreliableSequencedFragmentedPipeline = driver.CreatePipeline(unreliableSequencedFragmentedPipelineStages);
reliableSequencedPipeline = driver.CreatePipeline(reliableSequencedPipelineStages);
}
}
Then simply assign an instance of this class to UnityTransport.s_DriverConstructor before calling any of the start methods on your NetworkManager.