public override Session Connect(string senderName, IConnection connection, ITemplateRegistry inboundRegistry,
                                        ITemplateRegistry outboundRegistry, IMessageListener messageListener,
                                        ISessionListener sessionListener)
        {
            var session = new Session(connection, this, TemplateRegistryFields.Null, TemplateRegistryFields.Null);

            session.MessageOutputStream.WriteMessage(CreateHelloMessage(senderName));
            Message message    = session.MessageInputStream.ReadMessage();
            string  serverName = message.GetString(1);

            session.Client = new BasicClient(serverName, "unknown");
            return(session);
        }
Example #2
0
        public UdpGateway(int port, ISessionListener listener)
        {
            LOG_TAG = "UdpGateway<" + port + ">";
            this.Log("port:{0}", port);

            m_bufferReceive = new NetBufferWriter();
            m_pool          = new SocketAsyncEventArgsPool(NetDefine.PacketBufferSize, 10000);

            m_port     = port;
            m_listener = listener;

            m_mapSession = new MapList <uint, UdpSession>();

            Start();
        }
Example #3
0
 /// <summary>
 /// Adds a session destroy listener that will be notified when the session is destroyed.
 /// </summary>
 /// <param name="listener">The listener to add.</param>
 public void AddSessionDestroyedListener(ISessionListener listener)
 {
     if (listener != null)
     {
         if (_sessionDestroyedListeners == null)
         {
             lock (this.SyncRoot) {
                 if (_sessionDestroyedListeners == null)
                 {
                     _sessionDestroyedListeners = new CopyOnWriteArray();
                 }
             }
         }
         _sessionDestroyedListeners.AddIfAbsent(listener);
     }
 }
 public override Session Connect(string senderName, IConnection connection, ITemplateRegistry inboundRegistry,
                                 ITemplateRegistry outboundRegistry, IMessageListener messageListener,
                                 ISessionListener sessionListener)
 {
     var session = new Session(connection, this, TemplateRegistryFields.Null, TemplateRegistryFields.Null);
     session.MessageOutputStream.WriteMessage(CreateHelloMessage(senderName));
     Message message = session.MessageInputStream.ReadMessage();
     string serverName = message.GetString(1);
     session.Client = new BasicClient(serverName, "unknown");
     return session;
 }
Example #5
0
 public void RemoveSessionListener(ISessionListener listener) {
     _sessionListeners.Remove(listener);
 }
Example #6
0
 public void AddSessionListener(ISessionListener listener) {
     _sessionListeners.Add(listener);
 }
 public abstract Session Connect(string param1, IConnection param2, ITemplateRegistry inboundRegistry,
                                 ITemplateRegistry outboundRegistry, IMessageListener messageListener,
                                 ISessionListener sessionListener);
Example #8
0
 /// <summary>
 /// Removes a session destroy listener.
 /// </summary>
 /// <param name="listener">The listener to remove.</param>
 public void RemoveSessionDestroyedListener(ISessionListener listener)
 {
     if (listener != null)
     {
         if (_sessionDestroyedListeners != null)
             _sessionDestroyedListeners.Remove(listener);
     }
 }
Example #9
0
 /// <summary>
 /// Adds a session destroy listener that will be notified when the session is destroyed.
 /// </summary>
 /// <param name="listener">The listener to add.</param>
 public void AddSessionDestroyedListener(ISessionListener listener)
 {
     if (listener != null)
     {
         if (_sessionDestroyedListeners == null)
         {
             lock (this.SyncRoot)
             {
                 if (_sessionDestroyedListeners == null)
                     _sessionDestroyedListeners = new CopyOnWriteArray();
             }
         }
         _sessionDestroyedListeners.AddIfAbsent(listener);
     }
 }
Example #10
0
 /// <summary>
 /// Removes a session create listener.
 /// </summary>
 /// <param name="listener">The listener to remove.</param>
 public static void RemoveSessionCreatedListener(ISessionListener listener)
 {
     if (listener == null)
         return;
     _sessionCreatedListeners.Remove(listener);
 }
Example #11
0
 /// <summary>
 /// Adds a session create listener that will be notified when the session is created.
 /// </summary>
 /// <param name="listener">The listener to add.</param>
 public static void AddSessionCreatedListener(ISessionListener listener)
 {
     if (listener == null)
         return;
     _sessionCreatedListeners.AddIfAbsent(listener);
 }
Example #12
0
		/// <summary>Removes the listener from the list of listeners to be notified
		/// of future events. Note that the listener will be notified of
		/// events which have already happened and are in the process of
		/// being dispatched.</summary>
		/// <seealso cref="#addSessionListener"></seealso>
		public virtual void  removeSessionListener(ISessionListener l)
		{
			sessionListeners.Remove(l);
		}
Example #13
0
		/// <summary>adds the listener from the list of listeners to be notified
		/// of future events.</summary>
		/// <seealso cref="#removeSessionListener"></seealso>
		public virtual void  addSessionListener(ISessionListener l)
		{
			sessionListeners.Add(l);
		}
        public override Session Connect(string senderName, IConnection connection, ITemplateRegistry inboundRegistry,
                                        ITemplateRegistry outboundRegistry, IMessageListener messageListener,
                                        ISessionListener sessionListener)
        {
            var session = new Session(connection, this, TemplateRegistryFields.Null, TemplateRegistryFields.Null);
            session.MessageOutputStream.WriteMessage(CreateHelloMessage(senderName));
            try
            {
                Thread.Sleep(new TimeSpan((Int64) 10000*20));
            }
            catch (ThreadInterruptedException)
            {
            }

            Message message = session.MessageInputStream.ReadMessage();
            string serverName = message.GetString(1);
            string vendorId = message.IsDefined(2) ? message.GetString(2) : "unknown";
            session.Client = new BasicClient(serverName, vendorId);
            return session;
        }