Beispiel #1
0
        public static void TurnEhrLoginPage(Page objPage, string ConfigName)
        {
            string fullURL = ServerParams.FullUrl(objPage);

            objPage.Response.Redirect(Config.GetConfig(ConfigName) + fullURL);
            objPage.Response.End();
        }
Beispiel #2
0
        public void Start(IServerParams pParams, Action <IClientConnection> pClientConnectedAction)
        {
            if (!(pParams is ServerParams objParams))
            {
                Log.Error("Incorrect parameters for WebSocket server");
                throw new Exception("Incorrect parameters for WebSocket server");
            }
            _objParams = objParams;
            _objServer.ConnectionTimeoutSeconds = _objParams.ConnectionTimeoutSeconds;

            _objClientConnected = pClientConnectedAction;
            if (!String.IsNullOrEmpty(_objParams.CertPath))
            {
                if (!System.IO.File.Exists(_objParams.CertPath))
                {
                    Log.Error($"{_objParams.CertPath} not found");
                    throw new System.IO.FileNotFoundException($"{_objParams.CertPath} not found");
                }
                _objServer.Start(
                    _objParams.IP,
                    _objParams.Port,
                    new X509Certificate2(new X509Certificate2(System.IO.File.ReadAllBytes(_objParams.CertPath), _objParams.CertPassword))
                    );
            }
            else
            {
                _objServer.Start(_objParams.IP, _objParams.Port);
            }
        }
Beispiel #3
0
        private void AcceptCallBack(IAsyncResult ar)
        {
            allDone.Set();
            Socket       client  = (Socket)ar.AsyncState;
            Socket       handler = client.EndAccept(ar);
            ServerParams param   = new ServerParams();

            param.client = client;
            //*.BeginReceive(버퍼,버퍼 시작부분,버퍼MAX사이즈,소켓 플래그,ReceiveCallBack호출부,넘길 파라메터)
            handler.BeginReceive(param.buffer, 0, ServerParams.BufferSize, SocketFlags.None, new AsyncCallback(ReceiveCallBack), param);
        }
Beispiel #4
0
        private void ReceiveCallBack(IAsyncResult ar)
        {
            String       content   = String.Empty;
            ServerParams param     = (ServerParams)ar.AsyncState;
            Socket       client    = param.client;
            int          bytesRead = client.EndReceive(ar);

            if (bytesRead > 0)
            {
                content = Encoding.UTF8.GetString(param.buffer, 0, bytesRead);

                msgProc(client, content);
            }
        }
Beispiel #5
0
        private async Task SetServerIdAsync(Activity activity, ServerParams serverParams)
        {
            var serverClient = new ServerClient(serverParams.Id, activity.Conversation.Id)
            {
                UserName      = activity.Conversation.Name,
                BotServiceUrl = activity.ServiceUrl,
                BotId         = activity.Recipient.Id,
                BotName       = activity.Recipient.Name,
                ReplaceFrom   = serverParams.ReplaceFrom,
                ReplaceTo     = serverParams.ReplaceTo,
            };
            await _repository.SaveServiceClient(serverClient);

            var client = new Client(serverParams.Id, activity.Conversation.Id, activity.Conversation.Name);
            await _repository.SaveClient(client);
        }
Beispiel #6
0
        public void ClientConnectedTest()
        {
            //Arrange
            var objWebSocketServer = Substitute.For <IWebSocketServer>();
            var objAction          = Substitute.For <Action <IClientConnection> >();
            var objEventArgs       = Substitute.For <IWebSocketBehavior>();
            var objServer          = new WebsocketServer(objWebSocketServer);

            //Act
            var objParams = new ServerParams(IPAddress.Any, 80);

            objServer.Start(objParams, objAction);
            objWebSocketServer.ClientConnected += Raise.Event <EventHandler <IWebSocketBehavior> >(objWebSocketServer, objEventArgs);

            //Assert
            objAction.Received(1).Invoke(Arg.Any <IClientConnection>());
        }
Beispiel #7
0
 public WebSocketServer(IWebSocketServerWrapper pListener, ServerParams pParams)
 {
     Listener = pListener;
     Params   = pParams;
 }
Beispiel #8
0
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            var response = Request.CreateResponse(HttpStatusCode.OK);

            if (activity.Type == ActivityTypes.Message)
            {
                var mentions    = activity.GetMentions().FirstOrDefault(i => i.Mentioned.Id == activity.Recipient.Id);
                var messageText = activity.RemoveFuzzyRecipientMention().Trim();
                TrackMessage(messageText);
                var messageTextLower = messageText.ToLowerInvariant();
                if (messageTextLower == "chat.info")
                {
                    await SendReplyAsync(activity,
                                         $"conversationId: {activity.Conversation.Id}, url: {activity.ServiceUrl}");
                }

                if (messageTextLower == SetupCmd)
                {
                    var serverParams = ServerParams.New(_configuration.ServerIdPrefix);
                    await SetServerIdAsync(activity, serverParams);
                    await SendReplyAsync(activity, GetServerIdInfo(serverParams.Id, _configuration));

                    return(response);
                }
                if (messageTextLower.StartsWith(SetServerCmd))
                {
                    var serverParams = ServerParams.Parse(messageText.Substring(SetServerCmd.Length));
                    if (serverParams.Id.Length == 20)
                    {
                        await SendReplyAsync(activity, $"This is not valid server id.");
                    }
                    else
                    {
                        await SetServerIdAsync(activity, serverParams);
                        await SendReplyAsync(activity, GetServerIdInfo(serverParams.Id, _configuration));
                    }
                    return(response);
                }

                if (messageTextLower == GetServerCmd)
                {
                    var serverId = await GetServerIdAsync(activity);
                    await SendReplyAsync(activity, GetServerIdInfo(serverId, _configuration));

                    return(response);
                }

                if (messageTextLower == HelpCmd || messageTextLower == "Settings")
                {
                    await SendReplyAsync(activity, $"You can setup your server id by writing **setup** or getting the server id by writing **getserver**");

                    return(response);
                }

                if (messageTextLower == GetUsersCmd)
                {
                    var conversation = activity.Conversation;
                    await SendReplyAsync(activity, $"Conversation id: {conversation?.Id}, name: {conversation?.Name}");

                    return(response);
                }

                if (messageTextLower.Contains("version"))
                {
                    messageText = "1.2";
                }
                await SendReplyAsync(activity, messageText);
            }
            else
            {
                await HandleSystemMessageAsync(activity);
            }

            return(response);
        }