Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connect to service bus via WebSockets #353

Open
MikDal002 opened this issue Oct 21, 2020 · 1 comment
Open

Connect to service bus via WebSockets #353

MikDal002 opened this issue Oct 21, 2020 · 1 comment

Comments

@MikDal002
Copy link

Hello, I am looking for a way to connect to the service bus via web sockets. I wasn't able to make qpid-proton-c working for me. I found that azure-iot-c works over WS with IoT Hub, which brought me here. Unfortunately, I can't found connection parameters that I should provide to the "websocket_example" example. Of course, I filled IOT_HUB_HOST with "dev-myservicebusname.servicebus.windows.net", into IOT_HUB_DEVICE_NAME i wrote SharedAccessKeyName from Service Bus, into IOT_HUB_DEVICE_KEY.

I replaced authorization method to avoid using certificates:

//(void)xio_setoption(ws_io, "TrustedCerts", iothub_certs); <- that was originally in the example
SASL_PLAIN_CONFIG sasl_plain_config = { IOT_HUB_DEVICE_NAME, IOT_HUB_DEVICE_KEY, NULL };
SASL_MECHANISM_HANDLE sasl_mechanism_handle = saslmechanism_create(saslmssbcbs_get_interface(),  &sasl_plain_confi

At this moment I completely don't know what I should write in place of

  • ws_io_config.resource_name = "/$iothub/websocket";,
  • STRING_concat(scope_string, IOT_HUB_HOST "/devices/" IOT_HUB_DEVICE_NAME);
  • (void)cbs_put_token_async(cbs, "servicebus.windows.net:sastoken", IOT_HUB_HOST "/devices/" IOT_HUB_DEVICE_NAME, STRING_c_str(sas_token), on_cbs_put_token_complete, cbs);

Errors I receive:

Error: Time:Wed Oct 21 13:45:04 2020 File:/mnt/c/Users/mikdal/source/repos/azure-iot-sdk-c/c-utility/src/uws_client.c Func:on_underlying_io_bytes_received Line:1183 Bad status (400) received in WebSocket Upgrade response
Error: Time:Wed Oct 21 13:45:04 2020 File:/mnt/c/Users/mikdal/source/repos/azure-iot-sdk-c/c-utility/src/wsio.c Func:internal_close Line:149 wsio_close when not open.
Error: Time:Wed Oct 21 13:45:04 2020 File:/mnt/c/Users/mikdal/source/repos/azure-iot-sdk-c/uamqp/src/amqp_management.c Func:amqp_management_close Line:1020 AMQP management instance not open
CBS instance open failed.
Error: Time:Wed Oct 21 13:45:04 2020 File:/mnt/c/Users/mikdal/source/repos/azure-iot-sdk-c/c-utility/adapters/tlsio_openssl.c Func:decode_ssl_received_bytes Line:798 SSL channel closed in decode_ssl_received_bytes.
Error: Time:Wed Oct 21 13:45:04 2020 File:/mnt/c/Users/mikdal/source/repos/azure-iot-sdk-c/c-utility/adapters/tlsio_openssl.c Func:on_underlying_io_bytes_received Line:847 Error in decode_ssl_received_bytes.

I tried many different combinations of: IOT_HUB_HOST and queue name but with no luck. Additionally, I completely don't know where I could find any clue about useful endpoints.

@MikDal002
Copy link
Author

MikDal002 commented Oct 22, 2020

I made a step ahead. After looking at Event Hub example and with some deduction i finished with:

  • ws_io_config.resource_name=/$servicebus/websocket;,
  • scope_string have to be equal sb://" SB_HOST "/" SB_QUEUE_NAME "/"
  • and in cbs_put_token_ascync it must be the same.

With this, I successfully putted a message to the service bus. But I came across on another barrier – I can't receive any message because of the error uamqp/src/link.c Func:link_frame_received Line:333 Cannot get initial delivery count.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant