Example #1
0
        /// <summary>
        /// Method called when new JSON message has incommed.
        /// </summary>
        /// <param name="sender">WAMP session for client sending a message</param>
        /// <param name="json">JSON string</param>
        protected void ReceiveJson(IWampSession sender, string json)
        {
            var message = MessageProvider.DeserializeMessage(json);

            if (message != null)
            {
                OnMessageReceived(sender, message);
            }
        }
Example #2
0
 /// <summary>
 /// Creates na new <see cref="ProcedureContext"/> object used to schedule remote procedure call.
 /// </summary>
 /// <param name="message">Call message used for RPC request</param>
 /// <param name="definition">Definition of procedure to be called</param>
 /// <param name="session">WAMP message sender session object</param>
 /// <returns></returns>
 public virtual ProcedureContext CreateProcedureContext(CallMessage message, ProcedureDefinition definition, IWampSession session)
 {
     var procedureContext = new ProcedureContext
                                {
                                    Arguments = message.Arguments,
                                    CallId = message.CallId,
                                    ProcedureDefinition =  definition,
                                    RequesterSession = session
                                };
     return procedureContext;
 }
Example #3
0
 /// <summary>
 /// Creates a new <see cref="MessageContext"/> for incoming WAMP message.
 /// </summary>
 /// <param name="message">Incoming WAMP message</param>
 /// <param name="sender">WAMP session for client sending a message</param>
 /// <returns>A new instance of message wrapper context</returns>
 protected virtual MessageContext CreateMessageContext(IMessage message, IWampSession sender)
 {
     return(new MessageContext
     {
         Message = message,
         HostAddress = AddressUri.ToString(),
         SenderSession = sender,
         Procedures = Procedures,
         Response = ResponseQueue,
         Topics = Topics,
         Scheduler = Scheduler
     });
 }
Example #4
0
        /// <summary>
        /// Method handler for incoming WAMP messages.
        /// </summary>
        /// <param name="sender">WAMP session for client sending a message</param>
        /// <param name="message">Incoming WAMP message</param>
        protected virtual void OnMessageReceived(IWampSession sender, IMessage message)
        {
            var             messageContext = CreateMessageContext(message, sender);
            IMessageHandler handler;

            OnMessageHandling(messageContext);

            if (!messageContext.Cancel && Handlers.TryGetValue(message.Type, out handler))
            {
                handler.Handle(messageContext);
                OnMessageHandled(messageContext);
            }
        }
 /// <summary>
 /// Stores new WAMP session.
 /// </summary>
 /// <param name="session"></param>
 public void AddSession(IWampSession session)
 {
     _sessions.Add(session.SessionId, session);
 }
Example #6
0
        /// <summary>
        /// Creates na new <see cref="ProcedureContext"/> object used to schedule remote procedure call.
        /// </summary>
        /// <param name="message">Call message used for RPC request</param>
        /// <param name="definition">Definition of procedure to be called</param>
        /// <param name="session">WAMP message sender session object</param>
        /// <returns></returns>
        public virtual ProcedureContext CreateProcedureContext(CallMessage message, ProcedureDefinition definition, IWampSession session)
        {
            var procedureContext = new ProcedureContext
            {
                Arguments           = message.Arguments,
                CallId              = message.CallId,
                ProcedureDefinition = definition,
                RequesterSession    = session
            };

            return(procedureContext);
        }
 /// <summary>
 /// Stores new WAMP session.
 /// </summary>
 /// <param name="session"></param>
 public void AddSession(IWampSession session)
 {
     _sessions.Add(session.SessionId, session);
 }
Example #8
0
 /// <summary>
 /// Method called when new JSON message has incommed.
 /// </summary>
 /// <param name="sender">WAMP session for client sending a message</param>
 /// <param name="json">JSON string</param>
 protected void ReceiveJson(IWampSession sender, string json)
 {
     var message = MessageProvider.DeserializeMessage(json);
     if (message != null)
     {
         OnMessageReceived(sender, message);
     }
 }
Example #9
0
        /// <summary>
        /// Method handler for incoming WAMP messages.
        /// </summary>
        /// <param name="sender">WAMP session for client sending a message</param>
        /// <param name="message">Incoming WAMP message</param>
        protected virtual void OnMessageReceived(IWampSession sender, IMessage message)
        {
            var messageContext = CreateMessageContext(message, sender);
            IMessageHandler handler;
            OnMessageHandling(messageContext);

            if (!messageContext.Cancel && Handlers.TryGetValue(message.Type, out handler))
            {
                handler.Handle(messageContext);
                OnMessageHandled(messageContext);
            }
        }
Example #10
0
 /// <summary>
 /// Method called when existing WAMP client has been disconnected.
 /// </summary>
 /// <param name="session">Existing WAMP session associated with connected WAMP client</param>
 protected virtual void OnDisconnected(IWampSession session)
 {
     Sessions.RemoveSession(session.SessionId);
 }
Example #11
0
 /// <summary>
 /// Creates a new <see cref="MessageContext"/> for incoming WAMP message.
 /// </summary>
 /// <param name="message">Incoming WAMP message</param>
 /// <param name="sender">WAMP session for client sending a message</param>
 /// <returns>A new instance of message wrapper context</returns>
 protected virtual MessageContext CreateMessageContext(IMessage message, IWampSession sender)
 {
     return new MessageContext
                {
                    Message = message,
                    HostAddress = AddressUri.ToString(),
                    SenderSession = sender,
                    Procedures = Procedures,
                    Response = ResponseQueue,
                    Topics = Topics,
                    Scheduler = Scheduler
                };
 }
Example #12
0
 /// <summary>
 /// Method called when existing WAMP client has been disconnected.
 /// </summary>
 /// <param name="session">Existing WAMP session associated with connected WAMP client</param>
 protected virtual void OnDisconnected(IWampSession session)
 {
     Sessions.RemoveSession(session.SessionId);
 }