Skip to content
This repository was archived by the owner on May 5, 2020. It is now read-only.

Exponential backoff does not work #17

@bgourlie

Description

@bgourlie

Elm Version: 0.18
OS: Mac OS X
Browser: Chrome
SSCCE:

Because this is a bug internal to the websocket library, it can't be illustrated in an isolated example. Here are the simplest steps to reproduce:

  • Make a local copy of the echo example
  • Manually edit Websocket.elm in the elm-stuff/packages/websocket/1.0.2 directory. Add log statements to this line and this line so that you can see when they are fired.
  • Change the echoServer uri to something bogus to trigger reconnect behavior and run the application
  • Check the console and notice that the debug statement on this line is never executed, which is responsible for incrementing the connect attempt count that the backoff strategy is dependent on.

Detailed description:

The BadOpen message is never dispatched, presumably because the Die message is dispatched with every failed connect attempt. This appears to be happening because the native websocket onClose handler is fired every failed connect attempt, and then onSelfMsg handles the Die message, resetting the connection state.

It appears that the browser itself does some sort of connection throttling, which may be why this issue has gone unnoticed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions