WebSocket Device Service
The WebSocket Device Service provides an easy way for third-party applications to push data into Edge Xpert via the WebSocket protocol. The current implementation is intended for one-way communication into Edge Xpert via asynchronous readings.
The WebSocket Device Service supports the following key features:
- Support for both
- Connection to multiple WebSocket endpoints
- Retries after lost connection
- Data parsing from incoming payloads
- One-way communication, pushing data to Edge Xpert
- Asynchronous readings
The WebSocket Device Service will attempt to reconnect whenever a connection error is detected unless the endpoint explicitly sends the WebSocket Normal Closure Message.
By default, the device service will make ten reconnection attempts every five seconds. You can override the default time period by adding an environment variable,
DRIVER_RETRYPERIOD, to your local docker-compose.yml file:
device-websocket: ... environment: <<: *common-variables SERVICE_HOST: device-websocket DRIVER_RETRYPERIOD: 10s
With the example above, WebSocket Device Service will attempt to reconnect to the remote endpoint ten times every ten seconds.
Supported Data Types
The WebSocket Device Service supports the following data types:
- UInt8, UInt16, UInt32, UInt64
- Int8, Int16, Int32, Int64
- Float32, Float64
WebSocket Device Profile
In the WebSocket Device Service, each device resource represents a field in the JSON payload and a mandatory attribute named
jsonPath must be specified. A device command represents a single Event aggregating one or more device resource(s) and will be pushed to Core Data.
The WebSocket Device Service assumes each received data payload is in JSON format.
Using the WebSocket Device Service
An example of setting up and using Edge Xpert WebSocket Device Service can be found at WebSocket Example.