Example TCP Rule Function to Connect to a Remote TCP Server

Here is a sample rule function to connect to a remote TCP server as a client:

Copy
Events.RemoteMsgResponseEvent rulefunction RuleFunctions.RemoteTCPSender {
   attribute {
      validity = ACTION;
   }
   scope {
      String host;
      int port;
      String message;
   }
   body {
      String tcpNickName = "TCP-" + host + "-" + port + "-"
         + uri + "-" + closure + "-" + System.nanoTime();
      Events.RemoteMsgRequestEvent requestEvent =
         Events.RemoteMsgRequestEvent.RemoteMsgRequestEvent(null, message);
      TCP.connectToRemoteServer(tcpNickName, host, port);
      TCP.write(tcpNickName, requestEvent);
      TCP.endWrite(tcpNickName);
      Events.RemoteMsgResponseEvent responseEvent =
         TCP.readIntoPayloadFully(tcpNickName,
         "/Events/RemoteMsgResponseEvent");
      TCP.disconnectFromRemoteServer(tcpNickName);
      return responseEvent;
   }
}