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); } }
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; } }
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); }