edgehog-device-manager / edgehog-device-runtime

Edgehog Device Runtime is a portable middleware written in Rust, that enables remote device management on Linux-based systems.
Apache License 2.0
11 stars 10 forks source link

feat(ws): implement websocket over websocket #298

Closed rgallor closed 3 months ago

rgallor commented 8 months ago

We would like to establish one or more WebSocket connections on top of an existing WebSocket channel between a device and a bridge. For instance, this could be useful in the scenario where a remote user, who has access to the bridge, wishes to open a remote terminal exposed by the device on a specific port and make it accessible through a WebSocket connection. The implementation of this functionality is described as follows:

codecov[bot] commented 8 months ago

Codecov Report

Attention: Patch coverage is 82.08469% with 55 lines in your changes are missing coverage. Please review.

Project coverage is 65.8%. Comparing base (68a0ee3) to head (f334937).

Additional details and impacted files | [Files](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager) | Coverage Δ | | |---|---|---| | [edgehog-device-runtime-forwarder/src/astarte.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2FzdGFydGUucnM=) | `100.0% <ø> (ø)` | | | [edgehog-device-runtime-forwarder/src/tls.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL3Rscy5ycw==) | `0.0% <ø> (ø)` | | | [edgehog-device-runtime-forwarder/src/collection.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2NvbGxlY3Rpb24ucnM=) | `32.2% <42.8%> (+1.4%)` | :arrow_up: | | [...og-device-runtime-forwarder/src/connection/http.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2Nvbm5lY3Rpb24vaHR0cC5ycw==) | `79.1% <79.1%> (ø)` | | | [...evice-runtime-forwarder/src/connections\_manager.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2Nvbm5lY3Rpb25zX21hbmFnZXIucnM=) | `36.3% <50.0%> (+8.0%)` | :arrow_up: | | [edgehog-device-runtime-forwarder/src/messages.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL21lc3NhZ2VzLnJz) | `97.0% <94.1%> (-0.8%)` | :arrow_down: | | [...vice-runtime-forwarder/src/connection/websocket.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2Nvbm5lY3Rpb24vd2Vic29ja2V0LnJz) | `73.3% <73.3%> (ø)` | | | [...hog-device-runtime-forwarder/src/connection/mod.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL2Nvbm5lY3Rpb24vbW9kLnJz) | `25.0% <25.0%> (ø)` | | | [edgehog-device-runtime-forwarder/src/test\_utils.rs](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager#diff-ZWRnZWhvZy1kZXZpY2UtcnVudGltZS1mb3J3YXJkZXIvc3JjL3Rlc3RfdXRpbHMucnM=) | `87.8% <87.8%> (ø)` | | ... and [3 files with indirect coverage changes](https://app.codecov.io/gh/edgehog-device-manager/edgehog-device-runtime/pull/298/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=edgehog-device-manager)