1.20.14 • Published 11 months ago

@arcblock/ws v1.20.14

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
11 months ago

Blocklet Server WebSocket

Blocklet Server PubSub base on Websocket and Phoenix Protocol

Usage

  1. WsServer
const { WsServer } = require('@arcblock/ws');

/**
 * @params {Object} opts
 *  @params {http.Server} opts.httpServer
 *  @params {String} opts.pathname default to '/websocket'
 *  @params {Function} opts.authenticate
 */
const wsServer = new WsServer({
  httpServer: http.createServer(),
  authenticate: (req, cb) => {
    const { searchParams } = new URL(req.url, `http://${req.headers.host || 'unknown'}`);
    const token = searchParams.get('token');
    if (!token) {
      cb(new Error('token not found'), null);
      return;
    }

    // custom logic for validate token
    const authInfo = validateToken(token);

    // if validate success
    cb(null, authInfo);

    // if validate error
    cb(new Error('validate fail'), null);
  },
});

// attach to httpServer(httpServer has passed by constructor)
wsSerer.attach();

// push message
wsServer.broadcast('blocklet.installed', data);
wsServer.broadcast('notification.create', data);
wsServer.broadcast('topic', 'event', data);
  1. WsClient

WsClient is inherited from Phoenix(source),

import WsClient from '@arcblock/ws/lib/client';

// create instance
const socket = new WsClient(`//${window.location.hostname}`, {
  // params will be passed to server through url
  params: () => ({
    // token is used for authentication
    token: window.localStorage.getItem('abt_node_login_token'),
  }),

  // Defaults to none
  logger: (type, msg, data) => console.log(type, msg, data),
});

// connect
socket.connect();

// add subscriber
socket.on('blocklet.installed', callback1);
socket.on('notification.create', callback2);

// remove subscriber
socket.off('blocklet.installed', callback1);
socket.off('notification.create', callback2);

// More flexible subscription
const subscription = socket.subscribe('topic', {});
subscription.on('event', ({ response }) => {
  // Do something with the event data
});

// disconnect
socket.disconnect(() => {
  // after disconnected...
});
  1. Hooks

It's very simple to create hooks in react apps.

1.19.0

1 year ago

1.19.4

1 year ago

1.19.3

1 year ago

1.19.2

1 year ago

1.19.1

1 year ago

1.19.8

1 year ago

1.19.7

1 year ago

1.19.6

1 year ago

1.19.5

1 year ago

1.19.9

1 year ago

1.19.12

1 year ago

1.19.13

1 year ago

1.19.10

1 year ago

1.19.11

1 year ago

1.19.16

1 year ago

1.19.17

1 year ago

1.19.14

1 year ago

1.19.15

1 year ago

1.19.18

1 year ago

1.19.19

1 year ago

1.18.159

1 year ago

1.18.158

1 year ago

1.18.157

1 year ago

1.18.156

1 year ago

1.18.155

1 year ago

1.18.154

1 year ago

1.18.153

1 year ago

1.18.152

1 year ago

1.18.151

1 year ago

1.18.150

1 year ago

1.18.149

1 year ago

1.18.148

1 year ago

1.18.147

1 year ago

1.18.146

1 year ago

1.18.145

1 year ago

1.18.144

1 year ago

1.18.143

1 year ago

1.18.142

1 year ago

1.18.140

1 year ago

1.20.10

1 year ago

1.20.11

12 months ago

1.20.12

11 months ago

1.20.13

11 months ago

1.20.14

11 months ago

1.19.20

1 year ago

1.19.21

1 year ago

1.18.166

1 year ago

1.18.165

1 year ago

1.18.164

1 year ago

1.18.163

1 year ago

1.18.162

1 year ago

1.18.161

1 year ago

1.18.160

1 year ago

1.18.139

2 years ago

1.20.1

1 year ago

1.20.2

1 year ago

1.20.0

1 year ago

1.20.5

1 year ago

1.20.6

1 year ago

1.20.3

1 year ago

1.20.4

1 year ago

1.20.9

1 year ago

1.20.7

1 year ago

1.20.8

1 year ago

1.18.138

2 years ago

1.18.137

2 years ago

1.18.136

2 years ago

1.18.135

2 years ago

1.18.134

2 years ago

1.18.133

2 years ago

1.18.132

2 years ago

1.18.131

2 years ago

1.18.130

2 years ago

1.18.129

2 years ago

1.18.128

2 years ago

1.18.127

2 years ago

1.18.126

2 years ago

1.18.125

2 years ago

1.18.124

2 years ago

1.18.123

2 years ago

1.18.122

2 years ago

1.18.121

2 years ago

1.18.120

2 years ago

1.18.119

2 years ago

1.18.118

2 years ago

1.18.117

2 years ago

1.18.116

2 years ago

1.18.115

2 years ago

1.18.114

2 years ago

1.18.113

2 years ago

1.18.112

2 years ago

1.18.111

2 years ago

1.18.110

2 years ago

1.18.109

2 years ago

1.18.108

2 years ago

1.18.107

2 years ago

1.18.106

2 years ago

1.18.105

2 years ago

1.18.104

2 years ago

1.18.96

2 years ago

1.18.99

2 years ago

1.18.98

2 years ago

1.18.97

2 years ago

1.18.103

2 years ago

1.18.102

2 years ago

1.18.101

2 years ago

1.18.100

2 years ago

1.18.95

3 years ago

1.18.94

3 years ago

1.18.93

3 years ago

1.18.85

3 years ago

1.18.89

3 years ago

1.18.88

3 years ago

1.18.87

3 years ago

1.18.86

3 years ago

1.18.92

3 years ago

1.18.91

3 years ago

1.18.90

3 years ago

1.18.81

3 years ago

1.18.84

3 years ago

1.18.83

3 years ago

1.18.82

3 years ago

1.18.80

3 years ago

1.18.70

3 years ago

1.18.74

3 years ago

1.18.73

3 years ago

1.18.72

3 years ago

1.18.71

3 years ago

1.18.78

3 years ago

1.18.77

3 years ago

1.18.76

3 years ago

1.18.75

3 years ago

1.18.79

3 years ago

1.18.69

3 years ago

1.18.67

3 years ago

1.18.66

3 years ago

1.18.68

3 years ago

1.18.41

3 years ago

1.18.40

3 years ago

1.18.45

3 years ago

1.18.44

3 years ago

1.18.43

3 years ago

1.18.42

3 years ago

1.18.49

3 years ago

1.18.48

3 years ago

1.18.47

3 years ago

1.18.46

3 years ago

1.18.38

3 years ago

1.18.39

3 years ago

1.18.63

3 years ago

1.18.62

3 years ago

1.18.61

3 years ago

1.18.60

3 years ago

1.18.65

3 years ago

1.18.64

3 years ago

1.18.52

3 years ago

1.18.51

3 years ago

1.18.50

3 years ago

1.18.56

3 years ago

1.18.55

3 years ago

1.18.54

3 years ago

1.18.53

3 years ago

1.18.59

3 years ago

1.18.58

3 years ago

1.18.57

3 years ago

1.18.34

3 years ago

1.18.33

3 years ago

1.18.37

3 years ago

1.18.36

3 years ago

1.18.35

3 years ago

1.18.1

4 years ago

1.18.0

4 years ago

1.18.5

4 years ago

1.18.4

4 years ago

1.18.3

4 years ago

1.18.2

4 years ago

1.18.9

4 years ago

1.18.8

4 years ago

1.18.7

4 years ago

1.18.6

4 years ago

1.18.30

3 years ago

1.18.32

3 years ago

1.18.31

3 years ago

1.17.23

4 years ago

1.18.23

3 years ago

1.18.22

3 years ago

1.18.21

3 years ago

1.18.20

3 years ago

1.18.27

3 years ago

1.18.26

3 years ago

1.18.25

3 years ago

1.18.24

3 years ago

1.18.28

3 years ago

1.18.12

4 years ago

1.18.11

4 years ago

1.18.10

4 years ago

1.18.16

3 years ago

1.18.15

4 years ago

1.18.14

4 years ago

1.18.13

4 years ago

1.18.19

3 years ago

1.18.18

3 years ago

1.18.17

3 years ago

1.17.22

4 years ago

1.17.21

4 years ago

1.17.20

4 years ago

1.17.15

4 years ago

1.17.14

4 years ago

1.17.13

4 years ago

1.17.12

4 years ago

1.17.19

4 years ago

1.17.18

4 years ago

1.17.17

4 years ago

1.17.16

4 years ago

1.16.10

4 years ago

1.16.14

4 years ago

1.16.13

4 years ago

1.16.12

4 years ago

1.16.17

4 years ago

1.16.16

4 years ago

1.16.15

4 years ago

1.17.11

4 years ago

1.17.10

4 years ago

1.6.10

4 years ago

1.17.2

4 years ago

1.17.1

4 years ago

1.17.0

4 years ago

1.17.6

4 years ago

1.17.5

4 years ago

1.17.4

4 years ago

1.17.3

4 years ago

1.17.9

4 years ago

1.17.8

4 years ago

1.17.7

4 years ago

1.16.7

4 years ago

1.16.6

4 years ago

1.16.5

4 years ago

1.16.9

4 years ago

1.16.8

4 years ago

1.15.0

4 years ago

1.15.4

4 years ago

1.15.3

4 years ago

1.15.2

4 years ago

1.15.1

4 years ago

1.14.20

4 years ago

1.15.7

4 years ago

1.14.21

4 years ago

1.15.6

4 years ago

1.14.22

4 years ago

1.15.5

4 years ago

1.14.23

4 years ago

1.14.24

4 years ago

1.14.25

4 years ago

1.16.3

4 years ago

1.16.2

4 years ago

1.16.1

4 years ago

1.16.0

4 years ago

1.16.4

4 years ago

1.14.19

4 years ago

1.14.1

4 years ago

1.14.0

4 years ago

1.14.5

4 years ago

1.14.4

4 years ago

1.14.3

4 years ago

1.14.2

4 years ago

1.14.9

4 years ago

1.13.75

4 years ago

1.14.8

4 years ago

1.13.74

4 years ago

1.14.7

4 years ago

1.13.77

4 years ago

1.14.6

4 years ago

1.13.76

4 years ago

1.13.71

4 years ago

1.13.70

4 years ago

1.13.73

4 years ago

1.13.72

4 years ago

1.13.79

4 years ago

1.13.78

4 years ago

1.13.66

4 years ago

1.13.65

4 years ago

1.13.68

4 years ago

1.13.67

4 years ago

1.13.69

4 years ago

1.13.80

4 years ago

1.13.86

4 years ago

1.14.10

4 years ago

1.13.85

4 years ago

1.14.11

4 years ago

1.14.12

4 years ago

1.13.82

4 years ago

1.13.81

4 years ago

1.13.84

4 years ago

1.13.83

4 years ago

1.14.17

4 years ago

1.14.18

4 years ago

1.14.13

4 years ago

1.14.14

4 years ago

1.14.15

4 years ago

1.14.16

4 years ago

1.13.57

5 years ago

1.13.56

5 years ago

1.13.59

4 years ago

1.13.58

5 years ago

1.13.64

4 years ago

1.13.63

4 years ago

1.13.60

4 years ago

1.13.62

4 years ago

1.13.61

4 years ago

1.13.53

5 years ago

1.13.52

5 years ago

1.13.55

5 years ago

1.13.54

5 years ago

1.13.51

5 years ago

1.13.50

5 years ago

1.13.49

5 years ago

1.13.46

5 years ago

1.13.48

5 years ago

1.13.47

5 years ago

1.13.45

5 years ago

1.13.42

5 years ago

1.13.31

5 years ago

1.13.41

5 years ago

1.13.30

5 years ago

1.13.44

5 years ago

1.13.33

5 years ago

1.13.32

5 years ago

1.13.40

5 years ago

1.13.39

5 years ago

1.13.28

5 years ago

1.13.38

5 years ago

1.13.29

5 years ago

1.13.35

5 years ago

1.13.34

5 years ago

1.13.37

5 years ago

1.13.36

5 years ago

1.13.27

5 years ago

1.13.26

5 years ago

1.13.25

5 years ago

1.13.24

5 years ago

1.13.23

5 years ago

1.13.22

5 years ago