예제 #1
0
 public static WebSocketRPCRoute GetOrAddRoute <T>(int port, string hubPath) where T : WebSocketRPCProxy, new()
 {
     lock (_lock)
     {
         var server = GetOrAddServer(port);
         var route  = port.ToString() + hubPath;
         for (int i = 0; i < routes.Count; i++)
         {
             if (routes[i].Route == route)
             {
                 return(routes[i]);
             }
         }
         var hub      = server.AddWebSocketService <T>(hubPath);
         var ws_route = new WebSocketRPCRoute(port, hubPath, hub.Sessions);
         routes.Add(ws_route);
         return(ws_route);
     }
 }
예제 #2
0
 protected override void OnOpen() => route = WebSocketRPCRouter.GetOrAddRoute <WebSocketRPCProxy>(Context.RequestUri.Port, Context.RequestUri.LocalPath);