public void Process(BaseMessage message, ProtocolType Protocol, IPEndPoint EP = null, TcpClient Client = null)
        {
            var msg = (HubInfoMessage)message;

            // We need this lock as we're checking for null and during an initial handshake messages will come almost simultaneously.
            //lock (manager.Connections)
            lock (connections)
            {
                HubInfo hubInfo = connections.GetConnection(msg.Id);

                if (hubInfo == null)
                {
                    hubInfo = new HubInfo(msg);
                    connections.AddConnection(hubInfo);

                    hub.Publish(new ConnectionAddedEvent()
                    {
                        Data = hubInfo
                    });
                }
                else
                {
                    hubInfo.Update(msg);

                    hub.Publish(new ConnectionUpdatedEvent()
                    {
                        Data = hubInfo
                    });
                }
            }
        }