Communication Server

Communication Server function is to exchange communication messages between different units and webclients. It is like a chatting server. Communication Server runs as part of Drone-Engage Server modules.


Source Code: https://github.com/DroneEngage/droneengage_communication

Web UDP Telemetry is part of the communication server.


Authentication Sequence Diagram

Settings

Settings is defined in a file called server.config the most important fields are:


server_id: Defines name of the communication server.
server_ip: Defines ip that is the server is listening to. default: “::”
public_host: This is the ip or domain name of the server from the view points of DroneEngage units and webclient.
server_sid: A fixed unique number given to the server, as the system allows multiple communication servers to run together.
server_port: Defines the port that is the server is listening to. default:9966
enable_SSL: Sometimes you want to skip the SSL connection validation, due to constraints in your network.
s2s_ws_target_ip: This is the ip of Authentication Server. This is a websocket connection between Authentication Server and Communication Server.
s2s_ws_target_port: This is the port for the same websocket connection between Authentication Server and Communication Server.


{
    "server_id"                     : "DE_Lap",
    "server_ip"                     : "::",
    "public_host"                   : "airgap.droneengage.com",
    "server_sid"                    : 0,
    "server_port"                   : 9966,
    "enable_SSL"                    : true,
    "s2s_ws_target_ip"              : "127.0.0.1",
    "s2s_ws_target_port"            : "19408",
    "ssl_key_file"                  : "./ssl/privkey.pem",
    "ssl_cert_file"                 : "./ssl/fullchain.pem",
    "allow_fake_SSL"                : true,
    "ca_cert_path"                  :"/home/pi/ssl/root.crt",
    "ignoreLoadingTasks"            : true,
    "command_plugin"                : "./js_andruav_command_processing",

    "allow_udpproxy_fixed_port"     : true,

    "ignoreLog"                 : true,
    "log_directory"             : "./logs/",
    "log_timeZone"              : "GMT",
    "log_detailed"              : true

}

Warning

Although above is a JSON file but you can add comments to the code using // and /* */ blocks.