public void SendMessage(RemoteSessionMessage message)
        {
            switch (message.Type)
            {
            case MessageType.Connected:
                Send("<script>parent.lpProcessMessage('connected');</script>");
                break;

            case MessageType.Disconnected:
                Send("<script>parent.lpProcessMessage('disconnected');</script>");
                break;

            case MessageType.PageReload:
                Send("<script>parent.lpProcessMessage('reload');</script>");
                break;

            case MessageType.RemoteClipboard:
                Send(string.Format("<script>parent.lpProcessMessage('clipboard|{0}');</script>", message.Text.Replace(@"\", @"\\").Replace("\r", @"\r").Replace("\n", @"\n").Replace("'", @"\'")));
                break;

            case MessageType.TerminalOutput:
                Send(string.Format("<script>parent.lpProcessMessage('term|{0}');</script>", message.Text.Replace(@"\", @"\\").Replace("\r", @"\r").Replace("\n", @"\n").Replace("'", @"\'")));
                break;

            case MessageType.PrintJob:
                Send(string.Format("<script>parent.lpProcessMessage('printjob|{0}');</script>", message.Text));
                break;
            }
        }
 public void SendMessage(RemoteSessionMessage message)
 {
     if (!BinaryMode)
     {
         Send(string.Concat(message.Prefix, message.Text));
     }
     else
     {
         Send(Encoding.UTF8.GetBytes(string.Concat(message.Prefix, message.Text)));
     }
 }
 public void SendMessage(RemoteSessionMessage message)
 {
     if (!Binary)
     {
         Send(JsonConvert.SerializeObject(message));
     }
     else
     {
         Send(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message)));
     }
 }
Exemple #4
0
        public void SendMessage(RemoteSessionMessage message)
        {
            // HTML5 client(s)
            if (WebSockets.Count > 0)
            {
                foreach (var webSocket in WebSockets)
                {
                    webSocket.SendMessage(message);
                }
            }

            // HTML4 client(s)
            foreach (List <RemoteSessionMessage> messageQueue in MessageQueues.Values)
            {
                lock (((ICollection)messageQueue).SyncRoot)
                {
                    messageQueue.Add(message);
                }
            }
            StopWaitForImageEvent();
        }
Exemple #5
0
 private void SendMessage(RemoteSessionMessage message)
 {
     if (WebSockets.Count > 0)
     {
         foreach (var webSocket in WebSockets)
         {
             webSocket.Send(string.Concat(message.Prefix, message.Text));
         }
     }
     else
     {
         foreach (List <RemoteSessionMessage> messageQueue in MessageQueues.Values)
         {
             lock (((ICollection)messageQueue).SyncRoot)
             {
                 messageQueue.Add(message);
             }
         }
         StopWaitForImageEvent();
     }
 }
Exemple #6
0
        public void SendMessage(RemoteSessionMessage message)
        {
            // websocket client(s)
            if (WebSockets.Count > 0)
            {
                foreach (var webSocket in WebSockets)
                {
                    webSocket.SendMessage(message);
                }
            }

            // event source client(s)
            if (EventSources.Count > 0)
            {
                foreach (var eventSource in EventSources)
                {
                    eventSource.SendMessage(message);
                }
            }

            // long polling client(s)
            if (LongPollings.Count > 0)
            {
                foreach (var longPolling in LongPollings)
                {
                    longPolling.SendMessage(message);
                }
            }

            // xhr client(s)
            foreach (List <RemoteSessionMessage> messageQueue in MessageQueues.Values)
            {
                lock (((ICollection)messageQueue).SyncRoot)
                {
                    messageQueue.Add(message);
                }
            }
            StopWaitForImageEvent();
        }
Exemple #7
0
        public void SendMessage(RemoteSessionMessage message)
        {
            // send message to client(s)
            foreach (var client in Clients.Values)
            {
                // websocket(s)
                if (client.WebSockets != null && client.WebSockets.Count > 0)
                {
                    // no round robin there; send message on the first websocket down
                    Trace.TraceInformation("Sending {0} notification on websocket, client {1}, remote session {2}", message.Type, client.Id, RemoteSession.Id);
                    client.WebSockets[0].SendMessage(message);
                }
                // event source
                else if (client.EventSource != null)
                {
                    Trace.TraceInformation("Sending {0} notification on event source, client {1}, remote session {2}", message.Type, client.Id, RemoteSession.Id);
                    client.EventSource.SendMessage(message);
                }
                // long polling
                else if (client.LongPolling != null)
                {
                    Trace.TraceInformation("Sending {0} notification on long polling, client {1}, remote session {2}", message.Type, client.Id, RemoteSession.Id);
                    client.LongPolling.SendMessage(message);
                }
                // xhr
                else if (client.MessageQueue != null)
                {
                    Trace.TraceInformation("Sending {0} notification on xhr, client {1}, remote session {2}", message.Type, client.Id, RemoteSession.Id);
                    lock (((ICollection)client.MessageQueue).SyncRoot)
                    {
                        client.MessageQueue.Add(message);
                    }
                }
            }

            StopWaitForImageEvent();
        }
 public void SendMessage(RemoteSessionMessage message)
 {
     Send(JsonConvert.SerializeObject(message));
 }
Exemple #9
0
 public void SendMessage(RemoteSessionMessage message)
 {
     Send(string.Format("<script>parent.lpProcessMessage('{0}');</script>", JsonConvert.SerializeObject(message).Replace(@"\", @"\\").Replace("\r", @"\r").Replace("\n", @"\n").Replace("'", @"\'")));
 }
 public void SendMessage(RemoteSessionMessage message)
 {
     Send(string.Concat(message.Prefix, message.Text));
 }