private static void Remove(this RouterComponent self, long id) { RouterNode routerNode = self.GetChild <RouterNode>(id); if (routerNode == null) { return; } self.OuterNodes.Remove(routerNode.OuterConn); RouterNode connectRouterNode; if (self.ConnectIdNodes.TryGetValue(routerNode.ConnectId, out connectRouterNode)) { if (connectRouterNode.Id == routerNode.Id) { self.ConnectIdNodes.Remove(routerNode.ConnectId); } } Log.Info($"router remove: {routerNode.Id} outerConn: {routerNode.OuterConn} innerConn: {routerNode.InnerConn}"); routerNode.Dispose(); }
public static RouterNode Get(this RouterComponent self, uint outerConn) { RouterNode routerNode = null; self.OuterNodes.TryGetValue(outerConn, out routerNode); return(routerNode); }
public static void OnError(this RouterComponent self, long id, int error) { RouterNode routerNode = self.GetChild <RouterNode>(id); if (routerNode == null) { return; } Log.Info($"router node remove: {routerNode.OuterConn} {routerNode.InnerConn} {error}"); self.Remove(id); }
private static RouterNode New(this RouterComponent self, string innerAddress, uint connectId, uint outerConn, uint innerConn, IPEndPoint syncEndPoint) { RouterNode routerNode = self.AddChild <RouterNode>(); routerNode.ConnectId = connectId; routerNode.OuterConn = outerConn; routerNode.InnerConn = innerConn; routerNode.InnerIpEndPoint = NetworkHelper.ToIPEndPoint(innerAddress); routerNode.SyncIpEndPoint = syncEndPoint; routerNode.InnerAddress = innerAddress; routerNode.LastRecvInnerTime = TimeHelper.ClientNow(); self.ConnectIdNodes.Add(connectId, routerNode); routerNode.Status = RouterStatus.Sync; Log.Info($"router new: outerConn: {outerConn} innerConn: {innerConn} {syncEndPoint}"); return(routerNode); }