private void Run()
            {
                _ws            = new WebSocket(_host + ":" + _port);
                _ws.OnMessage += (sender, e) => this.OnMessage(e.Data);
                //_ws.CloseAsync();
                _ws.Connect();

                foreach (Type p in _subscribers)
                {
                    _ws.Send(ROSBridgeMsg.Subscribe(GetMessageTopic(p), GetMessageType(p)));
                    if (_debug)
                    {
                        Debug.Log("Sending " + ROSBridgeMsg.Subscribe(GetMessageTopic(p), GetMessageType(p)));
                    }
                }
                foreach (Type p in _publishers)
                {
                    _ws.Send(ROSBridgeMsg.Advertise(GetMessageTopic(p), GetMessageType(p)));
                    if (_debug)
                    {
                        Debug.Log("Sending " + ROSBridgeMsg.Advertise(GetMessageTopic(p), GetMessageType(p)));
                    }
                }
                while (true)
                {
                    Thread.Sleep(10000);
                }
            }
 /**
  * Add a publisher to this connection. There can be many publishers.
  */
 public void AddPublisher(Type publisher)
 {
     IsValidPublisher(publisher);
     _publishers.Add(publisher);
     if (_connected)
     {
         _ws.Send(ROSBridgeMsg.Advertise(GetMessageTopic(publisher), GetMessageType(publisher)));
     }
 }