Panel |
---|
borderColor | #3D3D3D |
---|
bgColor | #F4F4F4 |
---|
titleColor | #3D3D3D |
---|
borderWidth | 0 |
---|
titleBGColor | #3D3D3D |
---|
borderStyle | solid |
---|
|
ON THIS PAGE |
The networkdiagnostics object allows you to retrieve information about network interfaces and Internet connectivity.
Code Block |
---|
language | js |
---|
title | networkdiagnostics IDL |
---|
collapse | true |
---|
|
interface NetworkDiagnostics {
Promise<NetworkDiagnosticsResult> testInternetConnectivity()
Promise<NetworkDiagnotsticsResult> testNetworkInterface(String interface_name)
Promise<PingResult> ping(String host_name, PingConfig config)
//< For BrightSign internal use. Behavior subject to change without notice.
Promise<TracerouteResult> traceroute(String host_name, TracerouteConfig config)
//< For BrightSign internal use. Behavior subject to change without notice.
};
interface InterfaceTestResult {
String diagnosis;
bool ok;
Array<Log> log;
};
interface Log {
String name;
bool pass;
String result;
Array<String> info;
//< For BrightSign internal use. Behaviour subject to change without notice.
};
interface PingConfig {
unsigned? short count; // default 10
unsigned long? interval; // in milliseconds, default 100
unsigned long? timeout; // in seconds, default 10000
unsigned long? packetsize; // in bytes, default 56
bool? ipv4; // enable pinging IPv4 addresses, default true
bool? ipv6; // enable pinging IPv6 addresses, default false
bool? allAddresses; // if true then ping all addresses returned from DNS query,
// if false then each will be pinged in turn until one responds, default false
};
interface PingResult {
String hostname; // host name or literal address pinged
PingResults results;
};
interface PingResults {
bool up; // true if at least one address responded to at least 50% of the echo requests
Array<ProtocolPingResult>? ipv4;
Array<ProtocolPingResult>? ipv6;
};
interface ProtocolPingResult {
String address; // IP address pinged
bool up; // true if the address responded to at least 50% of the echo requests
ProtocolPingReport report;
};
interface ProtocolPingReport {
unsigned short transmitted; // number of echo requests sent
unsigned short received; // number of echo replies received
ProtocolPingStats stats;
};
interface ProtocolPingStats {
unsigned long quickest; // quickest reply received
unsigned long average; // average time across all replies from address
unsigned long slowest; // slowest reply received
String units; // always "us" to indicate microseconds
}; |
Object Creation
To create a networkdiagnostics object, first load the brightsign/networkdiagnostics
module using the require()
method. Then create an instance of the networkdiagnostics class.
Code Block |
---|
|
var NetworkDiagnosticsClass = require("@brightsign/networkdiagnostics");
var networkDiag = new NetworkDiagnosticsClass(); |
NetworkDiagnostics
Use this interface to retrieve diagnostic information.
Warning |
---|
|
The testInternetConnectivity() method generates a large amount of network traffic (e.g. DNS lookups) that may degrade the performance of a player, create network congestion, or be perceived as abusive by the network's upstream DNS provider. This method is intended for one-time use to validate network connectivity or to diagnose a suspected problem. |
testInternetConnectivity()
Code Block |
---|
|
Promise<InterfaceTestResult> testInternetConnectivity() |
Performs various tests on the Internet connection (via any available network interface) to determine whether it appears to be working correctly. This method returns an InterfaceTestResult
interface when diagnostics are complete.
testNetworkInterface()
Code Block |
---|
|
Promise<InterfaceTestResult> testNetworkInterface(String interface_name) |
Performs tests on the specified network interface to determine whether it appears to be working correctly. Interface name values are the same as those used with the roNetworkConfiguration object. This method returns an InterfaceTestResult
interface when diagnostics are complete.
ping()
Code Block |
---|
|
Promise<PingResult> ping(String host_name, PingConfig config) |
For BrightSign internal use. Behavior subject to change without notice. Pings a device with the specified host_name
to determine if there are connection issues.
traceroute()
Code Block |
---|
|
Promise<InterfaceTestResult> traceroute(String host_name, TraceRouteConfig config) |
For BrightSign internal use. Behavior subject to change without notice. Performs a standard traceroute diagnostic on the specified host_name
.
InterfaceTestResult
This interface contains diagnostic results:
[String] diagnosis
: A single-line diagnosis of the first problem identified with the network interface or Internet connection[bool] ok
: A Boolean flag indicating whether the network interface or Internet connection passed diagnostic tests
[Log] log
: A Log object containing diagnostic information related to the network interface or Internet connection
Log
This interface contains a list of diagnostic logs. Each log contains the following attributes:
[String] name
: A description of the diagnostic [bool] pass
: A Boolean flag indicating whether the diagnostic was successful[String] result
: A description of the diagnostic result[StringList] info
: A string list containing diagnostic data
PingConfig
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[unsigned short] count:
The default value is 10[unsigned long]
interval:
Value in milliseconds. The default is 100.[unsigned long]
timeout:
The timeout value in seconds. The default is 10000.[unsigned long] packetsize
: // in bytes, default 56[bool]
ipv4:
Enable pinging IPv6 addresses. The default is true.[bool]
ipv6:
Enable pinging IPv6 addresses. The default isfalse.[bool]
allAddresses:
If true then ping all addresses returned from the DNS query, if false then each will be pinged in turn until one responds. The default is false.
PingResult
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[string] hostname:
The host name or literal address pinged[PingResults] results:
PingResults
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[bool] up:
This value is true if at least one address responded to at least 50% of the echo requests [Array<ProtocolPingResult>] ipv4:
[Array<ProtocolPingResult>] ipv6:
ProtocolPingResults
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[string]
address:
The IP address pinged[bool] up:
If true if the address responded to at least 50% of the echo requests ProtocolPingReport report
ProtocolPingReport
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[unsigned short] transmitted
: The number of echo requests sent [unsigned short]
received:
The number of echo replies received [ProtocolPingStats]
stats:
ProtocolPingStats
This interface is fully implemented in BrightSign OS v8.3.45 and later:
[unsigned long]
quickest:
The quickest reply received [unsigned long]
average:
The average time across all replies from address [unsigned long]
slowest:
The slowest reply received.[string]
units:
The value is always "us" to indicate microseconds
Example
The following script creates a networkdiagnostics instance and logs Internet diagnostic data to the console:
Code Block |
---|
|
var NetworkDiagnosticsClass = require("@brightsign/networkdiagnostics");
var nd = new NetworkDiagnosticsClass();
nd.testInternetConnectivity().then(
function(data) {
console.log(JSON.stringify(data));
})
.catch(
function(data) {
console.log(JSON.stringify(data));
}); |
This example pings a network interface:
Code Block |
---|
|
const NetworkDiagnostics = require("@brightsign/networkdiagnostics");
let networkDiagnostics = new NetworkDiagnostics;
console.log("Pinging...");
networkDiagnostics.ping("www.google.com", { count: 1, timeout: 5000, ipv4: true, ipv6: false }).then((results) => {
console.log(`${results.hostname} is ${results.up ? "up" : "down"}`);
}); |