Git Product home page Git Product logo

azure-webpubsub's Introduction

Azure Web PubSub

Overview

Azure Web PubSub enables you to build real-time messaging web applications using WebSockets and the publish-subscribe pattern. Any platform supporting WebSocket APIs can connect to the service easily, e.g. web pages, mobile applications, edge devices, etc. The service manages the WebSocket connections for you and allows up to 100K *concurrent connections. It provides powerful APIs for you to manage these clients and deliver real-time messages.

Scenarios

Any scenario that requires real-time publish-subscribe messaging between server and clients or among clients, can use Azure Web PubSub service. Traditional real-time features that often require polling from server or submitting HTTP requests, can also use Azure Web PubSub service.

Quickstart

Eager to get started? Check Quickstart to get started!

Step-by-step tutorials

Integrate with Azure Function

Troubleshooting Guidance

Here contains the details.

References

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-webpubsub's People

Contributors

alexweininger avatar amis92 avatar benc-uk avatar bjqian avatar chenkennt avatar dependabot[bot] avatar flarocca avatar haofanliao avatar horihiro avatar jialinxin avatar jiangy10 avatar kevinguo-ed avatar lovettchris avatar microsoft-github-policy-service[bot] avatar ralarcon avatar ruiminhu avatar sffamily avatar sikebe avatar terencefan avatar tg-msft avatar vicancy avatar vwxyzh avatar wanlwanl avatar xingsy97 avatar y-sindo avatar zackliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-webpubsub's Issues

Regenerate AccessKey failed

#25

Regenerate AccessKey for WebPubSub resource 'kk-bbush2' failed with status: 'error' and error: 'Service must be active state'. The resource was not in creating status.
While I can agree that having 2 separate operations to rotate the same key should cause an error, the error message is invalid and misleading. BTW, even though the first rotate operation reported as succeeded, the key was never rotated. This is not specific to web pubsub - it seems to be the same issue for SignalR.

Java SDK UT coverage

#23

  • has unused members
    Review code: members are never used
    private WebPubSubAsyncServiceClient asyncClient;
    private WebPubSubAsyncGroup asyncGroupClient;
  • has no tests for broadcast to a group
    Review code: no tests for broadcast to a group

  • has no tests for sub protocol
    Review code: no tests for sub protocol

by Jialin - Bug Bash - Round 1

You can also use comments to add more issues you find

  • View full pricing details missed link.
  • Resource not listed under RG after creation.
  • Resource status not correct after created.
  • Client url generator won't refresh after key regenerate.
  • Event Handler setting url movement arrow not show correctly
  • Identity alerts not disappear after switch to disable mode.

Billing pricing missed link

Create resource and click View full pricing details

image

Resource not listed under RG after creation.

check resource group view

image

Resource status not correct after created.

check resource overview

image

Client url generator won't refresh after key regenerate.

click regenerate key and below client url not updated.

Event Handler setting url movement arrow not show correctly

should highlight as down and up.
image

Identity alerts not disappear after switch to disable mode.

image

by zhyan - Bug Bash - Round 1

You can also use comments to add more issues you find

  • Some errors on portal.
  • Live trace do not capture send messages by rest API.
  • Cannot send message to user /.
  • Cannot send an empty message.
  • Cannot grant permission for an existed connection by rest API.
  • Live trace tool should not display SignalR's docs and sdks.
  • Should not prompt save for changing in Keys tab
  • Duplicate Should not prompt save for changing hub name in Keys tab.
  • Duplicate Should not prompt save for changing a user id in Keys tab.
  • Duplicate Should not prompt save for updating token lifetime in Keys tab.
  • Duplicate Should not prompt save for updating roles in Keys tab.
  • Duplicate Should not prompt save for updating selected sign key in Keys tab.
  • Should not allow to configure event handlers to localhost.

Some errors on portal.

Repro steps:

  1. Create resource.

  2. Open it in portal:

    image

Live trace do not capture send messages by rest API.

Repro steps:

  1. Open live trace tool.
  2. Send messages by rest API.

Cannot send message to user /.

Repro steps:

  1. Create a client with user id /

    image

  2. Send a message to user /

    image
    image

  3. No message can be received by client.

    image

Cannot send an empty message.

Repro steps:

Use c# sdk, send an empty message.
Get following error:

Azure.RequestFailedException: Service request failed.
Status: 500 (Internal Server Error)

Headers:
Date: Wed, 07 Apr 2021 05:20:03 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Strict-Transport-Security: REDACTED
Content-Type: plain/text

Cannot grant permission for an existed connection by rest API.

Repro steps:

Use c# sdk, grant connection permission like following:

serviceClient.GrantPermission(WebPubSubPermission.SendToGroup, "real_connection_id", "g");

Get following error:

Azure.RequestFailedException: Service request failed.
Status: 404 (Not Found)

Content:
Connection id not found

Headers:
Date: Wed, 07 Apr 2021 05:47:17 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: REDACTED
Strict-Transport-Security: REDACTED
Content-Type: text/plain; charset=utf-8

Live trace tool should not display SignalR's docs and sdks.

Repro steps:

Open live trace tools:
image

Should not prompt save for changing hub name in Keys tab.

Repro steps:

Open portal.
Switch to Keys tab.
Change hub name in Client URL Generator:
image
Try to switch to other tab, then get following prompt:
image

Should not prompt save for changing a user id in Keys tab.

Repro steps:

Open portal.
Switch to Keys tab.
Write a user id in Client URL Generator:
image
Try to switch to other tab, then get following prompt:
image

Should not prompt save for updating token lifetime in Keys tab.

Repro steps:

Open portal.
Switch to Keys tab.
Update token lifetime in Client URL Generator:
image
Try to switch to other tab, then get following prompt:
image

Should not prompt save for updating roles in Keys tab.

Repro steps:

Open portal.
Switch to Keys tab.
Update roles in Client URL Generator:
image
Try to switch to other tab, then get following prompt:
image

Should not prompt save for updating selected sign key in Keys tab.

Repro steps:

Open portal.
Switch to Keys tab.
Update selected sign key in Client URL Generator:
image
Try to switch to other tab, then get following prompt:
image

Should not allow to configure event handlers to localhost

Repro steps:

Add an event handler.
Set the url template to: http://localhost.
Click save.
image

Connection failure

Cannot consistently repro

  1. Setup chatapp
  2. Also add a handleConnect handler (not sure if it's related)
  3. Open and refresh the homepage a few times
  4. There is a chance that the connection will fail, though the handleConnect return 200

by kkhurin - Bug Bash - Round 1

You can also use comments to add more issues you find

  • Issue 1 Outdated link in resource create page
  • Issue 2 Access control (IAM) list has lots of "SignalR" roles
  • Issue 3 Error when regenerating access keys "Regenerate Access Key Failed error: service must be active state"

Issue 1 Outdated link in resource create page

when creating new web pubsub service there is a "Learn more" link to an old github repo:

Deploy fully managed WebPubSub Service at scale. Learn more
it points to: https://github.com/Azure/azure-signalr-vnext-features/tree/master/serverless-websocket
should point to: https://github.com/Azure/azure-webpubsub
or perhaps some specific welcome page like https://github.com/Azure/azure-webpubsub/blob/main/docs/pubsub.md

Issue 2 Access control (IAM) list has lots of "SignalR" roles

for example:

  • SignalR AccessKey Reader
  • SignalR Contributor

Issue 3 Regenerate AccessKey failed

Regenerate AccessKey for WebPubSub resource 'kk-bbush2' failed with status: 'error' and error: 'Service must be active state'

(actually the same for signalR service) - regenerating the same key twice leads to the error above

Live trace issues

#26

#28

  • Live trace tool still has "Azure SignalR" in it
    Repro steps
  1. Create a Web PubSub resource
  2. Go to diagnostic settings, click open live trace tool
  3. Hover over to "supported services"
  4. In the drop it says "Azure SignalR"
  5. The docs and sdks are also pointing to SignalR docs
  • Live trace tool doesn't auto reconnect
    Repro steps
  1. Open live trace
  2. Wait for some time until the websocket connection is closed
  3. There will be a disconnected state showing on the top right corner of the page
  4. There should be a better way to handle disconnect (either have some automatic reconnect or a better way to let user know client is disconnected) since disconnect here will cause logs to be lost.
  • Live trace doesn't work all the time
    Cannot consistently repro this, but some observations:
  1. Unauthorized request (401) doesn't show in live trace (for most of the time, with a "Cannot read property 'hub' of null" error in console). There is a small chance that following message will be printed out:

    Sending message during operation {hub}=chat,{event}=connect,{category}=connections got unexpected response with status code 401. Detail:

  2. Seems after the connection is closed and reconnected, it will stop receiving logs.

by kenchen - Bug Bash - Round 1

You can also use comments to add more issues you find

  • Live trace tool still has "Azure SignalR" in it
  • Cannot use same hub name after deleting it
  • User event pattern doesn't support whitespaces
  • Help text in event handlers needs update
  • Live trace tool doesn't auto reconnect
  • Cannot delete a hub in settings
  • System event setting doesn't work
  • "System event pattern" should be renamed
  • Live trace doesn't work all the time
  • Connection failure
  • ackId doesn't support 0
  • Move up and down buttons are incorrectly disabled

Live trace tool still has "Azure SignalR" in it

Repro steps

  1. Create a Web PubSub resource
  2. Go to diagnostic settings, click open live trace tool
  3. Hover over to "supported services"
  4. In the drop it says "Azure SignalR"
  5. The docs and sdks are also pointing to SignalR docs

Cannot use same hub name after deleting it

Repro steps

  1. Create a Web PubSub resource
  2. Go to settings
  3. Add a new hub
  4. Without saving the change, delete the newly added hub
  5. Add the same hub again
  6. There is an error message, saying the hub already exists. Though it's already deleted.
  7. Same error will happen if you want to rename an existing hub to one that is already deleted.

User event pattern doesn't allow whitespaces

  1. Create a Web PubSub resource
  2. Go to settings
  3. Add a new hub
  4. In user event pattern, input "a, b" (with a whitespace after the comma)
  5. There is an error saying the pattern is invalid
  6. It's better to support whitespaces before and after comma

Help text in event handlers needs update

This seems to be written for the old design (when user event and system event are mixed together). For example, system events are in a dropdown list so it's not possible to join them with comma.

Live trace tool doesn't auto reconnect

Repro steps

  1. Open live trace
  2. Wait for some time until the websocket connection is closed
  3. There will be a disconnected state showing on the top right corner of the page
  4. There should be a better way to handle disconnect (either have some automatic reconnect or a better way to let user know client is disconnected) since disconnect here will cause logs to be lost.

Cannot delete a hub in settings

Repro steps

  1. Create a Web PubSub resource
  2. Go to settings, add a new hub
  3. Save
  4. Delete the hub
  5. The save is still disabled

System event setting doesn't work

Repro steps

  1. Create a Web PubSub resource
  2. Go to setting, add a new hub
  3. Set system event pattern to "connected"
  4. Create a client to connect to the service, it will fail
  5. If you look at the webhook requests from service, you'll see connect event is sent even it's not configured

"System event pattern" should be renamed

Since it's not a "pattern" anymore but a list of predefined events?

Live trace doesn't work all the time

Cannot consistently repro this, but some observations:

  1. Unauthorized request (401) doesn't show in live trace (for most of the time, with a "Cannot read property 'hub' of null" error in console). There is a small chance that following message will be printed out:

    Sending message during operation {hub}=chat,{event}=connect,{category}=connections got unexpected response with status code 401. Detail:

  2. Seems after the connection is closed and reconnected, it will stop receiving logs.

Connection failure

Cannot consistently repro

  1. Setup chatapp
  2. Also add a handleConnect handler (not sure if it's related)
  3. Open and refresh the homepage a few times
  4. There is a chance that the connection will fail, though the handleConnect return 200

ackId doesn't support 0

  1. If you use 0 as ackId service will return an error "failed to process invalid incoming payload".
  2. Not sure if it's a bug or by design (then we should mention it in doc)
  3. Also the error message is not very clear
  4. Also if you send duplicate ackId connection will close with "internal server transient error". Should be a better user error instead of server error.

Move up and down buttons are incorrectly disabled

  1. Create a Web PubSub resource
  2. Go to settings, add a hub
  3. Add two url templates
  4. You'll see the "move down" for both of them are disabled (though one of them is actually clickable).
  5. Also if you click "move up" on one of them, both move up buttons will be disabled.

by zityang - Bug Bash - Round 1

You can also use comments to add more issues you find


bug list

  • Explorer console logs "Extension: Microsoft_Azure_SignalR"
  • C# SDK WebPubSubServiceClient async send wrong behavior

Not sure if is bug

  • C# Server SDK SendToConnection()/SendToUser(). When connectionId is "", return 404 not found. When connectionId is a non-existed connection Id, nothing happens.

Explorer console logs "Extension: Microsoft_Azure_SignalR"

Repro steps

  1. Open explorer console(F12 on Edge)
  2. Enter the created WebPubSub resource.
    Screenshot 2021-04-07 135036

C# SDK WebPubSubServiceClient async send wrong behavior

Repro steps

  1. Create Server code like here, run the code.
  2. The client only receives {}.

by Yan - Bug Bash - Round 1

You can also use comments to add more issues you find

  • Issue 1: Unexpected messages when viewing full pricing details
  • Issue 2: Unexpected direct link and repo for learn more
  • Issue 3: Feedback to SignalR, not Web PubSub
  • Issue 4: Difficult to learn the rules of generate a correct hub name

Issue 1 : unexpected messages when viewing full pricing details

  • The number of message is incorrect. Taking the standard tier as example, it should be 1 million messages/unit/day or 2 million KB outbound traffic/unit/day
  • For standard tier, it should be no SLA during public preview
  • if the unit is not generated automatically, I would recommend to keep align with pricing page. For example, for SignalR, it is "Message/Unit/Day", not "Message/Day/Unit".
    image

Issue 2: Unexpected direct link and repo for learn more

  • The "Learn More" link is using unexpected aka.ms link, including both the "websocket_service" term in the redirect link and the URL for the repo
    image

Issue 3: Feedback to SignalR, not Web PubSub

  • When deploying the instance, it seems that the feedback is still pointing to SignalR.
    image

Issue 4: Difficult to learn the rules of generate a correct hub name

  • So far, it is hard for customer to learn what's the correct hub name. When input a invalid hub name, we could only get a fuzzy message.
    image

Unexpected messages when viewing full pricing details

#22
#21

  • View full pricing details missed link.
    image
  • The number of message is incorrect. Taking the standard tier as example, it should be 1 million messages/unit/day or 2 million KB outbound traffic/unit/day
  • For standard tier, it should be no SLA during public preview
  • if the unit is not generated automatically, I would recommend to keep align with pricing page. For example, for SignalR, it is "Message/Unit/Day", not "Message/Day/Unit".
    image

sample issues

#23

  • sample doesn't work

Repro steps

Doesn't work to follow the steps:

  • fail to set connection

Repro steps

fail to set connection via node server.js CONN_STR from https://github.com/Azure/azure-webpubsub/blob/main/docs/getting-started/handle-events.md#create-a-server
image

#26

Outdated link in portal pages

#25
#22

  • Unexpected direct link and repo for learn more
  • [Feedback is neutral] Feedback to SignalR, not Web PubSub

when creating new web pubsub service there is a "Learn more" link to an old github repo:

Deploy fully managed WebPubSub Service at scale. Learn more
it points to: https://github.com/Azure/azure-signalr-vnext-features/tree/master/serverless-websocket
should point to: https://github.com/Azure/azure-webpubsub
or perhaps some specific welcome page like https://github.com/Azure/azure-webpubsub/blob/main/docs/pubsub.md

Feedback to SignalR, not Web PubSub

  • When deploying the instance, it seems that the feedback is still pointing to SignalR.
    image

Event Handler blade page issues

#21

#20

  1. Hard-to-understand what is "resource id" and where to find it, provide some hints?
  2. No validation when "resource Id" is empty
  3. When saving it with empty "resource id", the AAD switched back to disabled after saving
    1. Choose "Specify an AAD application"
      image
    2. Save
    3. Switched back to Authentication Disable
      hint fixed in https://msazure.visualstudio.com/One/_git/OSSServices-SignalR-PortalExtension/pullrequest/4367243
      when resource id is null, default managed id is used instead.
      emptry resource id fixed here https://msazure.visualstudio.com/One/_git/OSSServices-SignalR-PortalExtension/pullrequest/4321276?_a=files

#26

#28

  • Cannot use same hub name after deleting it
    Repro steps
  1. Create a Web PubSub resource
  2. Go to settings
  3. Add a new hub
  4. Without saving the change, delete the newly added hub
  5. Add the same hub again
  6. There is an error message, saying the hub already exists. Though it's already deleted.
  7. Same error will happen if you want to rename an existing hub to one that is already deleted.
    fixed here https://msazure.visualstudio.com/One/_git/OSSServices-SignalR-PortalExtension/pullrequest/4343846?_a=files
  • User event pattern doesn't allow whitespaces
  1. Create a Web PubSub resource
  2. Go to settings
  3. Add a new hub
  4. In user event pattern, input "a, b" (with a whitespace after the comma)
  5. There is an error saying the pattern is invalid
  6. It's better to support whitespaces before and after comma
    fixed in https://msazure.visualstudio.com/One/_git/OSSServices-SignalR-PortalExtension/pullrequest/4348669?_a=files
  1. Create a Web PubSub resource
  2. Go to settings, add a new hub
  3. Save
  4. Delete the hub
  5. The save is still disabled
    fixed here https://msazure.visualstudio.com/One/_git/OSSServices-SignalR-PortalExtension/pullrequest/4343846?_a=files
  1. Create a Web PubSub resource
  2. Go to settings, add a hub
  3. Add two url templates
  4. You'll see the "move down" for both of them are disabled (though one of them is actually clickable).
  5. Also if you click "move up" on one of them, both move up buttons will be disabled.
    Default behavior by portal sdk. The focused one (in grey highlight) is the 1st row in the screenshot, so it cannot move up. I think it's in low priority. Won't fix.

[lianwei] issues found in Bug Bash - Round 1

You can also use comments to add more issues you find

Portal

  • 1. Wrong link when creating the service
  • 2. Switching Keys blade should not pop up "Your unsaved edits will be discarded."
  • 3. Multiple validation errors should merge
  • 4. Layout of the Identity warning when configuring event handler
  • 5. AAD "Specify an AAD application"
  • 6. AAD change does not enable "Save button"
  • 7. Web PubSub service is not found when creating "New support request" in the portal

Service

  • 1. Permission does not support grant/revoke all groups
  • 2. AddPermissionToConnection, addConnectionToGroup return 404 when connection is not found, however connectionSend / AddUserToGroup don't

Function binding

  • 1. Settings usability
  • 2. The name of the output binding shouldn't be "eventHandler" since "eventHandler" is for service->server side message processing
  • 3. webPubSubTrigger can log out the URL for easy event handler configure
  • 4. Invalid [WebPubSubTrigger("chat", "connect", "a")] setting does not throw, consider using enum for EventType for better intellisense?

1. Wrong link when creating the service

Repro steps

image

2. Switching Keys blade should not pop up "Your unsaved edits will be discarded."

Repro steps

image

3. Multiple validation errors should merge

Repro steps

image

4. Layout of the Identity warning when configuring event handler

image

5. AAD "Specify an AAD application"

  1. Hard-to-understand what is "resource id" and where to find it, provide some hints?
  2. No validation when "resource Id" is empty
  3. When saving it with empty "resource id", the AAD switched back to disabled after saving
    1. Choose "Specify an AAD application"
      image
    2. Save
    3. Switched back to Authentication Disable

6. AAD change does not enable "Save button"

image

7. Web PubSub service is not found when creating "New support request" in the portal

image

Function binding - Settings usability

How about having a dedicated section for WebPubSub related configures?

"WebPubSub" : {
   "Hub": "chat",
   "ConnectionString": "..."
}

Cannot send an empty message.

#24

Repro steps:

Use c# sdk, send an empty message.
Get following error:

Azure.RequestFailedException: Service request failed.
Status: 500 (Internal Server Error)

Headers:
Date: Wed, 07 Apr 2021 05:20:03 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Strict-Transport-Security: REDACTED
Content-Type: plain/text

Cannot grant permission for an existed connection by rest API.

#24

Repro steps:

Use c# sdk, grant connection permission like following:

serviceClient.GrantPermission(WebPubSubPermission.SendToGroup, "real_connection_id", "g");

Get following error:

Azure.RequestFailedException: Service request failed.
Status: 404 (Not Found)

Content:
Connection id not found

Headers:
Date: Wed, 07 Apr 2021 05:47:17 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: REDACTED
Strict-Transport-Security: REDACTED
Content-Type: text/plain; charset=utf-8

by wanl - Bug Bash - Round 1

You can also use comments to add more issues you find

  • no hint from search box
  • some part of the texts are translated
  • sample isn't easy to run
  • fail to set connection
  • sample doesn't work
  • java sample has unused members
  • java sample has no tests for broadcast to a group
  • java sample has no tests for sub protocol

no hint from search box

Repro steps

no hint from search box:
image

some part of the texts are translated

Repro steps

some part of the texts are translated
image

sample isn't easy to run

Repro steps

Doesn't work to follow the steps:

fail to set connection

Repro steps

fail to set connection via node server.js CONN_STR from https://github.com/Azure/azure-webpubsub/blob/main/docs/getting-started/handle-events.md#create-a-server
image

sample doesn't work

Repro steps

sample doesn't work https://github.com/Azure/azure-webpubsub/blob/main/docs/getting-started/handle-events.md
use this resource: /subscriptions/ef72249e-9785-4799-a76b-7cdd80e1b1d0/resourceGroups/wanl/providers/Microsoft.SignalRService/WebPubSub/wanl-bugbash
run sample, then get 401 when upstream is set.

java sample has unused members

Repro steps

  1. check the doc here
  2. review code: members are never used
    private WebPubSubAsyncServiceClient asyncClient;
    private WebPubSubAsyncGroup asyncGroupClient;

java sample has no tests for broadcast to a group

Repro steps

  1. check the doc here
  2. review code: members are never used
  3. no tests for broadcast to a group

java sample has no tests for sub protocol

Repro steps

  1. check the doc here
  2. review code: members are never used
  3. no tests for sub protocol

No dimension for connection count

#26

As live trace adds one connection count and we don't have dimensions for connection count. Customer cannot distinct between real connection count and live trace connection count.

Portal: Input box not reset after new hub is added

image

Repo Steps:

  1. Add a hub in settings blade.

Expected:
The input box after Add Event Handler Settings For Hub: should be reset.

Actual:
The input box is still filled with last hub name, which is not very useful.

by chenyl - Bug Bash - Round 1

You can also use comments to add more issues you find

  • Issue 1
  • Issue 2
  • Issue 3
  • Issue 4
  • Issue 5
  • Issue 6
  • Issue 7
  • Issue 8

Issue 1

Portal UI of Event Handler is too wide. Some part can't be shown completely.

image

Issue 2

Event handler description has mistakes:

When the specified events happen, Web Pubsub service will send a POST... The Pubsub should be PubSub
For example, connect,disconnect matches events connected and disconnected. The connected should be connect
image

Issue 3

No dimension for connection count

As live trace adds one connection count and we don't have dimensions for connection count. Customer cannot distinct between real connection count and live trace connection count.

Issue 4

Web PubSub service is not shown is Role Assignment

image

Issue 5

No live trace Client connection failed with bad request

Try connect client with an invalid hub name, client connect failed with 400 but live trace shows no logs.

Issue 6

Add concept of ServiceClient equals to server side role

As the SDK use term ServiceClient. It's easy to confuse customer. It's actually a Rest call that ack as a server rather than a websocket client. Documents need to point it out.

Issue 7

Sample code error

Missing ) in code sample https://github.com/Azure/azure-webpubsub/blob/main/docs/specs/1-web-pubsub-service-design-spec.md#scenarios-1
image

Issue 8

Use block logic for the first event handler call before abuse protection

Portal: Should explain valid hub name pattern

Also mentioned in #22

  • So far, it is hard for customer to learn what's the correct hub name. When input a invalid hub name, we could only get a fuzzy message.
    image

image

Repo steps

  1. Type in an invalid hub name

Expected behavior

Show valid hub name pattern

Actual behavior

Only show it's invalid. Not telling what is valid.

`ackId` doesn't support 0

#28

  • 1. If you use 0 as ackId service will return an error "failed to process invalid incoming payload".
  1. Not sure if it's a bug or by design (then we should mention it in doc)
  • 3. Also the error message is not very clear
  • 4. Also if you send duplicate ackId connection will close with "internal server transient error". Should be a better user error instead of server error.

Function binding

#20

  • The name of the output binding shouldn't be "eventHandler" since "eventHandler" is for service->server side message processing
  • webPubSubTrigger can log out the URL for easy event handler configure
  • Invalid [WebPubSubTrigger("chat", "connect", "a")] setting does not throw, consider using enum for EventType for better intellisense?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.