2.3.4 • Published 1 month ago

react-use-websockets v2.3.4

Weekly downloads
80
License
MIT
Repository
github
Last release
1 month ago

react-use-websockets custom hook

React hook to facilitate connections to a WebSocket server running a specific protocol. Normal Javascript WebSockets created via new WebSocket(url) allow the sending and receiving of raw data packets. This WebSockets client works on top of that and assumes that the server understands a protocol based on messages, where each message has a name, an optional payload, and an optional receiver. Such as server is e.g. implemented in java here: Java WebSockets. Messages are sent using a delimiter between the name, followed by the receiver, followed by the payload

Install

npm install react-use-websockets

Usage

In order to utilise the useWebSocket hook, a context has to be created:

import React from 'react';
import { WebSocketProvider } from "react-use-websockets";

export const Index: FunctionComponent = () => {

    return(
        <WebSocketProvider
            url="wss://websocketserver:1234"
            delimiter="\t"
            logging={true}
        >
            <App />
        </WebSocketProvider>
    )

}

Now, the hook can be used in child components:

import React, {useEffect} from 'react';
import { useWebSocket } from "react-use-websockets";

export const Component: FunctionComponent = () => {

    const {listen, send, isConnected, connectivity, setDefaultCallback}  = useWebSocket();

    useEffect(() => {

        const unsubscribeListener = listen("SOME_MESSAGE_NAME", (payload: any, fromSid? string) => {
            console.log("I have received this payload:",payload,"from this client:",fromSid);

            send("SOME_MESSAGE_WAS_RECEIVED", "some kind of payload");
        })

        setDefaultCallback((message: string, payload: any, _fromSid?: string | null) => {
            console.log("I have received a message to which no listener exist:", message);
        })        

        const unsubscribeConnectivityListener = connectivity((isOnline: boolean) => {
            console.log("My connectivity state has changed. I'm now online?", isOnline);
        });


        return () => {
            unsubscribeListener();
            unsubscribeConnectivityListener();
        }

    }, []);


    if (!isConnected) return null; // wait until we are connected

    return (
        ....
    );


}
2.3.4

1 month ago

2.3.3

1 month ago

2.3.2

2 months ago

2.3.0

3 months ago

2.3.1

3 months ago

2.2.9

3 months ago

2.2.8

3 months ago

2.2.5

3 months ago

2.2.7

3 months ago

2.2.6

3 months ago

2.2.4

3 months ago

2.2.3

3 months ago

2.2.1

3 months ago

2.2.0

3 months ago

2.2.2

3 months ago

2.1.2

3 months ago

2.1.4

3 months ago

2.1.3

3 months ago

2.1.6

3 months ago

2.1.5

3 months ago

2.1.7

3 months ago

2.1.1

4 months ago

2.1.0

4 months ago

2.0.5

4 months ago

2.0.4

4 months ago

2.0.3

4 months ago

2.0.2

4 months ago

2.0.1

6 months ago

1.11.15

3 years ago

1.12.1

3 years ago

1.11.12

3 years ago

1.11.13

3 years ago

1.11.10

3 years ago

1.11.11

3 years ago

1.11.4

3 years ago

1.11.3

3 years ago

1.11.2

3 years ago

1.11.1

3 years ago

1.11.8

3 years ago

1.11.7

3 years ago

1.11.6

3 years ago

1.11.5

3 years ago

1.11.9

3 years ago

1.10.5

3 years ago

1.10.4

3 years ago

1.10.3

3 years ago

1.10.2

3 years ago

1.10.8

3 years ago

1.10.7

3 years ago

1.10.6

3 years ago

1.10.1

3 years ago

1.10.0

3 years ago

1.9.5

3 years ago

1.9.4

3 years ago

1.9.3

3 years ago

1.9.2

3 years ago

1.9.1

3 years ago

1.9.0

3 years ago

1.8.3

3 years ago

1.8.2

3 years ago

1.7.8

3 years ago

1.7.7

3 years ago

1.7.6

3 years ago

1.8.1

3 years ago

1.8.0

3 years ago

1.7.5

3 years ago

1.7.4

3 years ago

1.7.3

3 years ago

1.7.2

3 years ago

1.7.1

3 years ago

1.7.0

3 years ago

1.6.5

3 years ago

1.6.4

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.15

3 years ago

1.5.14

3 years ago

1.5.12

3 years ago

1.5.13

3 years ago

1.5.10

3 years ago

1.5.11

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.10

3 years ago

1.4.9

3 years ago

1.4.8

3 years ago

1.4.6

3 years ago

1.4.5

3 years ago

1.4.4

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.42

3 years ago

1.3.39

3 years ago

1.3.38

3 years ago

1.3.40

3 years ago

1.3.41

3 years ago

1.3.37

3 years ago

1.3.35

3 years ago

1.3.36

3 years ago

1.3.33

4 years ago

1.3.34

4 years ago

1.3.32

4 years ago

1.3.31

4 years ago

1.3.30

4 years ago

1.3.29

4 years ago

1.3.28

4 years ago

1.3.27

4 years ago

1.3.26

4 years ago

1.3.25

4 years ago

1.3.23

4 years ago

1.3.22

4 years ago

1.3.21

4 years ago

1.3.20

4 years ago

1.3.19

4 years ago

1.3.17

4 years ago

1.3.16

4 years ago

1.3.15

4 years ago

1.3.14

4 years ago

1.3.13

4 years ago

1.3.11

4 years ago

1.3.12

4 years ago

1.3.10

4 years ago

1.3.9

4 years ago

1.3.8

4 years ago

1.3.7

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.2.51

4 years ago

1.2.49

4 years ago

1.2.50

4 years ago

1.2.48

4 years ago

1.2.47

4 years ago

1.2.46

4 years ago

1.2.41

4 years ago

1.2.42

4 years ago

1.2.40

4 years ago

1.2.45

4 years ago

1.2.43

4 years ago

1.2.44

4 years ago

1.2.39

4 years ago

1.2.38

4 years ago

1.2.37

4 years ago

1.2.36

4 years ago

1.2.34

4 years ago

1.2.35

4 years ago

1.2.33

4 years ago

1.2.32

4 years ago

1.2.31

4 years ago

1.2.24

4 years ago

1.2.23

4 years ago

1.2.22

4 years ago

1.2.21

4 years ago

1.2.18

4 years ago

1.2.19

4 years ago

1.2.20

4 years ago

1.2.16

4 years ago

1.2.17

4 years ago

1.2.15

4 years ago

1.2.14

4 years ago

1.2.13

4 years ago

1.2.12

4 years ago

1.2.10

4 years ago

1.2.11

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.9

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.0.0

4 years ago