private void OnBroadcastService(object state) { mBroadcastServiceTimer.Change(-1, -1); try { int count = mLocalServices.Count; if (count > 0) { Protocols.SyncServiceInfo services = new Protocols.SyncServiceInfo(); services.RemoteNode = this.Node.ID; for (int i = 0; i < count; i++) { services.Items.Add(mLocalServices[i].GetInfo()); } string receive = @".+@" + mSwitchName; Message msg = new Message(); msg.Data = services; msg.Pulisher = Name; msg.Consumers = receive; msg.Mode = ReceiveMode.Regex; Publish(msg); } } catch (Exception e_) { Node.Loger.Process(LogType.ERROR, "bradcast service error {0}", e_.Message); } finally { mBroadcastServiceTimer.Change(1000, 1000); } }
private void OnSyncService(Message message, Protocols.SyncServiceInfo e) { bool create = false; foreach (Protocols.ServiceSubscriberItem item in e.Items) { RemoteService service = GetRemoteService(item.Service, out create); service.Register(item.Name, Node); if (create) { if (ServiceRegisted != null) { ServiceRegisted(this, service); } } } }