9b4c2b24c8
* update WS service to mproxy Signed-off-by: SammyOina <sammyoina@gmail.com> * Fix brokerstracing initialization in main.go The commit fixes the initialization of the brokerstracing package in the main.go file. The target server configuration is now correctly passed to the NewPubSub function, ensuring that the correct host and port are used for the PubSub service. This resolves an issue where the wrong server configuration was being used, leading to incorrect behavior. Signed-off-by: SammyOina <sammyoina@gmail.com> * Fix goroutine issue in main.go The commit fixes a goroutine issue in the main.go file. Previously, the `hs.Start()` function was not being executed in a goroutine, which caused the program to block. This commit wraps the `hs.Start()` function call in a goroutine to ensure it runs concurrently. This resolves the issue and allows the program to continue execution without blocking. Signed-off-by: SammyOina <sammyoina@gmail.com> * update to current mproxy Signed-off-by: SammyOina <sammyoina@gmail.com> * update dependencies Signed-off-by: SammyOina <sammyoina@gmail.com> * Fix targetWSHost value in proxyWS function The targetWSHost value in the proxyWS function was empty. This commit fixes the issue by setting the targetWSHost value to "localhost". Additionally, the target variable in the proxyWS function is updated to include the "ws://" protocol prefix. Signed-off-by: SammyOina <sammyoina@gmail.com> * update deps Signed-off-by: SammyOina <sammyoina@gmail.com> * remove authorize from unsubscribe Signed-off-by: SammyOina <sammyoina@gmail.com> --------- Signed-off-by: SammyOina <sammyoina@gmail.com> |
||
---|---|---|
.. | ||
api | ||
mocks | ||
tracing | ||
README.md | ||
adapter.go | ||
adapter_test.go | ||
client.go | ||
client_test.go | ||
doc.go | ||
handler.go |
README.md
WebSocket adapter
WebSocket adapter provides an WebSocket API for sending and receiving messages through the platform.
Configuration
The service is configured using the environment variables presented in the following table. Note that any unset variables will be replaced with their default values.
Variable | Description | Default |
---|---|---|
MF_WS_ADAPTER_LOG_LEVEL | Log level for the WS Adapter | info |
MF_WS_ADAPTER_HTTP_HOST | Service WS host | |
MF_WS_ADAPTER_HTTP_PORT | Service WS port | 8190 |
MF_WS_ADAPTER_HTTP_SERVER_CERT | Service WS server certificate | |
MF_WS_ADAPTER_HTTP_SERVER_KEY | Service WS server key | |
MF_THINGS_AUTH_GRPC_URL | Things service Auth gRPC URL | localhost:7000 |
MF_THINGS_AUTH_GRPC_TIMEOUT | Things service Auth gRPC request timeout in seconds | 1s |
MF_THINGS_AUTH_GRPC_CLIENT_TLS | Flag that indicates if TLS should be turned on | false |
MF_THINGS_AUTH_GRPC_CA_CERTS | Path to trusted CAs in PEM format | |
MF_MESSAGE_BROKER_URL | Message broker instance URL | nats://localhost:4222 |
MF_JAEGER_URL | Jaeger server URL | http://jaeger:14268/api/traces |
MF_SEND_TELEMETRY | Send telemetry to mainflux call home server | true |
MF_WS_ADAPTER_INSTANCE_ID | Service instance ID | "" |
Deployment
The service is distributed as Docker container. Check the ws-adapter
service section in docker-compose to see how the service is deployed.
Running this service outside of container requires working instance of the message broker service. To start the service outside of the container, execute the following shell script:
# download the latest version of the service
git clone https://github.com/mainflux/mainflux
cd mainflux
# compile the ws
make ws
# copy binary to bin
make install
# set the environment variables and run the service
MF_WS_ADAPTER_LOG_LEVEL=[WS adapter log level] \
MF_WS_ADAPTER_HTTP_HOST=[Service WS host] \
MF_WS_ADAPTER_HTTP_PORT=[Service WS port] \
MF_WS_ADAPTER_HTTP_SERVER_CERT=[Service WS server certificate] \
MF_WS_ADAPTER_HTTP_SERVER_KEY=[Service WS server key] \
MF_THINGS_AUTH_GRPC_URL=[Things service Auth gRPC URL] \
MF_THINGS_AUTH_GRPC_TIMEOUT=[Things service Auth gRPC request timeout in seconds] \
MF_THINGS_AUTH_GRPC_CLIENT_TLS=[Flag that indicates if TLS should be turned on] \
MF_THINGS_AUTH_GRPC_CA_CERTS=[Path to trusted CAs in PEM format] \
MF_MESSAGE_BROKER_URL=[Message broker instance URL] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_SEND_TELEMETRY=[Send telemetry to mainflux call home server] \
MF_WS_ADAPTER_INSTANCE_ID=[Service instance ID] \
$GOBIN/mainflux-ws
Usage
For more information about service capabilities and its usage, please check out the WebSocket paragraph in the Getting Started guide.