centrifugal / centrifuge-js

JavaScript client SDK to communicate with Centrifugo and Centrifuge-based server from browser, NodeJS and React Native. Supports WebSocket, HTTP-streaming over Fetch and Readable Stream API, EventSource, WebTransport.
https://centrifugal.dev
MIT License
401 stars 103 forks source link

Can't find variable: TextDecoder in React Native #201

Open jasperjorna opened 2 years ago

jasperjorna commented 2 years ago

Hi,

I'm implementing centrifuge@^3.0.1 in a React Native (0.70, without Expo) project. The web sockets are working fine, but I would like to use the http_stream as fallback. Unfortunately it throws the following error when trying to use the http_stream transport mode. Is there some dependency missing?

ReferenceError: Can't find variable: TextDecoder
Error: ENOENT: no such file or directory, open 'FooProject/HttpStreamTransport@http:/localhost:8081/index.bundle?platform=ios&dev=true&minify=false&modulesOnly=false&runModule=true'
FZambia commented 2 years ago

Hello, hmm - seems that TextDecoder is undefined in React Native (what I found - https://github.com/hapijs/joi/issues/2141). Probably you can just use any polyfill that defines TextDecoder on global level to fix this like shown here?

If it works, seems we should document it, or add an explicit option like we have for readableStream for example.

And it seems that in any case we need to avoid throwing an error in constructor of http stream transport.

itweb62 commented 1 year ago

Hello , i have try http_stream with React native (iOS), it's a "no supported transport found" in this case. for webtransport too btw ^^'