Exemplo n.º 1
0
        private void ConnectRTD(RtdClient RTDclient)
        {
            AppendLog("RTD connecting...");
            ChangeConnectionStatus("rtd_link_status", 1);
            bool ret = RTDclient.Connect("xrtd.xrtd", -1);

            if (!ret)
            {
                AppendLog("RTD Connection failed.");
                ChangeConnectionStatus("rtd_link_status", 0);
            }
        }
Exemplo n.º 2
0
        private void ServerOnBinary(IWebSocketConnection socket, byte[] data)
        {
            AppendLog("Websocket server received binary message.");

            // deserialise
            object    incoming = Helper.ByteArrayToObject(data);
            RtdClient client   = Connections[socket];

            switch (incoming)
            {
            case SubscriptionRequest sr:
                AppendLog("Message is a subscription request. Forwarding to RTD...");
                if (client.Connected)
                {
                    AppendLog(string.Join(";", sr.topicParams));
                    ToServerTime(socket, sr.topicParams);

                    client.Subscribe(sr.topicID, sr.topicParams);
                }
                else
                {
                    AppendLog("Error: RTD server not available!");
                    socket.Send("Error: RTD server not available!");
                }

                break;

            case CancelRequest cr:
                AppendLog("Message is a subscription cancellation request. Forwarding to RTD...");
                if (client.Connected)
                {
                    client.Unsubscribe(cr.topicID);
                }
                else
                {
                    AppendLog("Error: RTD server not available!");
                    socket.Send("Error: RTD server not available!");
                }
                break;

            default:
                AppendLog("Message type unknown.");
                break;
            }
        }
Exemplo n.º 3
0
        private void ServerOnOpen(IWebSocketConnection socket)
        {
            AppendLog("Client connected: " + socket.ConnectionInfo.ClientIpAddress.ToString() + ":" + socket.ConnectionInfo.ClientPort.ToString());
            AppendLog("Starting RTD for client: " + socket.ConnectionInfo.ClientIpAddress.ToString() + ":" + socket.ConnectionInfo.ClientPort.ToString());
            ChangeConnectionStatus("server_link_status", 2);

            // create RTD client for connection
            RtdClient client = new RtdClient();

            client.EConnect      += new EventHandler(Client_OnConnect);
            client.EDisconnect   += new EventHandler(Client_OnDisconnect);
            client.HeartBeatLost += new EventHandler(Client_OnHeartBeatLost);
            client.Data          += new EventHandler <DataEventArgs>(Client_OnData);
            Connections.Add(socket, client);
            Delays.Add(socket, TimeSpan.Zero);
            ReverseConnections.Add(client, socket);
            UpdateConnections(Connections.Count);
            ConnectRTD(client);
        }