Пример #1
0
        private void HandleConnect(ConnectMessage connectMessage, IInputContext context)
        {
            if (!_objectsRepository.TryGetObject(connectMessage.ObjectId, out _))
            {
                WriteObjectNotFoundError(context, connectMessage.ObjectId);
                return;
            }

            var ackMessage = new AckMessage(connectMessage.ClientHostAddress);

            context.Write(ackMessage.ToFrame());
        }
Пример #2
0
        public void HandleCall(IInputContext context, RequestMessage requestMessage)
        {
            try
            {
                var serializedParameters = _serializer.Deserialize(requestMessage.SerializedParameters);
                var payload = new Payload(serializedParameters, requestMessage.ObjectIds, requestMessage.Selector);

                var parameters = payload.ToParameters((objectId, paramIndex) => _objectsRepository.TryGetObject(objectId, out var obj) ? obj?.Object : null);
                HandleRequest(requestMessage.ClientHostAddress, context, requestMessage.MethodName, parameters);
            }
            catch (Exception e)
            {
                WriteException(context, e, requestMessage.ClientHostAddress);
            }
        }