Skip to content

React Native Support #1837

@MaximoLiberata

Description

@MaximoLiberata

Error: Cannot create URL for blob!

located: src/lib/client.ts
method: _setupPingTimer
class: PingTimer
init: getTimer(variant) = getTimer('auto')

Description:

The error is caused for the library worker-timers when the class PingTimer call getTimer('auto') method. This method getTimer doesn't recognize it's executed in ReactNative (RN), it know it's executed in a browser, but RN implements its own timers as: setTimeOut, setInterval, etc., when is called the method workerTimer instead nativeTimer the library worker-timers that implement Blob to store data or whatever it does, throw the next error: [Error: cannot create URL for blob!], Blob it isn't supported by RN.

Fix:

To support ReactNative (RN) it's necessary install 2 package additionals to RN projects:

Also include the next code at beginning of the program:

process.nextTick = (callback) => { setTimeout(callback, 0) }

Conclusion

I have the commit of the fix of this bug, please @robertsLando allow me create a PR and show you my solution.

I will attach my mqtt client connection and the files I changed in this package to fix the bug:

mqtt_client_example.txt
is-browser.txt
get-timer.txt
shared.txt
BufferedDuplex.txt

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