1.0.38 • Published 1 month ago

w-comor-websocket v1.0.38

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

w-comor-websocket

A websocket communicator in nodejs and browser. Mapping functions from nodejs to other end points, like a simple RPC.

language npm version license gzip file size npm download npm download jsdelivr download

Documentation

To view documentation or get support, visit docs.

Parts

w-comor-websocket includes 2 parts:

  • w-comor-websocket-server: for nodejs server
  • w-comor-websocket-client: for nodejs and browser client

Installation

Using npm(ES6 module):

Note: w-comor-websocket-server is mainly dependent on ws.

Note: w-comor-websocket-client is mainly dependent on ws and w-websocket-client.

npm i w-comor-websocket

Example for w-comor-websocket-server:

Link: [dev source code]

import WComorWebsocketServer from 'w-comor-websocket/dist/w-comor-websocket-server.umd.js'

function random(min, max) { return Math.floor(Math.random() * max) + min }

let opt = { port: 8080, authenticate: function(token) { //authenticate user by token return new Promise(function(resolve, reject) { setTimeout(function() { resolve(true) }, 1000) }) }, filterFuncs: function(token, funcs) { //resolve funcs by authenticating user return new Promise(function(resolve, reject) { funcs = funcs.filter(function(v) { return v.indexOf('Hide') < 0 }) resolve(funcs) }) }, onClientChange: function(clients, opt) { console.log(Server[port:${opt.port}] now clients: ${clients.length}) }, funcs: { 'group.plus': function({ p1, p2 }) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(p1 * p2) }, random(100, 3000)) }) }, 'group.div': function({ p1, p2 }) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(p1 / p2) }, random(100, 3000)) }) }, 'add': function({ p1, p2 }) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(p1 + p2) }, random(100, 3000)) }) }, 'addHide': function({ p1, p2 }) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(p1 + p2) }, random(100, 3000)) }) }, 'minu': function({ p1, p2 }) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(p1 - p2) }, random(100, 3000)) }) }, }, }

new WComorWebsocketServer(opt)

#### Example for `w-comor-websocket-client`:
> **Link:** [[dev source code](https://github.com/yuda-lyu/w-comor-websocket/blob/master/scla.mjs)]
```alias
import WComorWebsocketClient from 'w-comor-websocket/dist/w-comor-websocket-client.umd.js'

//opt
let opt = {
    url: 'ws://localhost:8080',
    token: '*',
    open: function() {
        console.log('client nodejs: open')
    },
    close: function() {
        console.log('client nodejs: close')
    },
    error: function(err) {
        console.log('client nodejs: error:', err)
    },
    reconn: function() {
        console.log('client nodejs: reconn')
    },
}

//WComorWebsocketClient
new WComorWebsocketClient(opt)
    .then(function(wo) {
        console.log('client nodejs: funcs: ', wo)
        
        function core(ps) {
            wo.group.plus(ps)
                .then(function(r) {
                    console.log('client nodejs: plus(' + JSON.stringify(ps) + ')=' + r)
                })
                .catch(function(err) {
                    console.log('client nodejs: plus: catch: ', err)
                })
            wo.group.div(ps)
                .then(function(r) {
                    console.log('client nodejs: div(' + JSON.stringify(ps) + ')=' + r)
                })
                .catch(function(err) {
                    console.log('client nodejs: div: catch: ', err)
                })
            wo.add(ps)
                .then(function(r) {
                    console.log('client nodejs: add(' + JSON.stringify(ps) + ')=' + r)
                })
                .catch(function(err) {
                    console.log('client nodejs: add: catch: ', err)
                })
            wo.minu(ps)
                .then(function(r) {
                    console.log('client nodejs: minu(' + JSON.stringify(ps) + ')=' + r)
                })
                .catch(function(err) {
                    console.log('client nodejs: minu: catch: ', err)
                })
        }

        let i = 100
        setInterval(function() {
            i += 1
            core({
                p1: i,
                p2: 10,
            })
        }, 1000)

    })
    .catch(function(err) {
        console.log('client nodejs: catch', err)
    })

In a browser(UMD module):

Note: w-comor-websocket-client does't depend on any package in browser.

Optional Add script with nomodule for IE11.

<script nomodule src="https://cdn.jsdelivr.net/npm/@babel/polyfill/dist/polyfill.min.js"></script>

Necessary Add script for w-comor-websocket-client.

<script src="https://cdn.jsdelivr.net/npm/w-comor-websocket@1.0.38/dist/w-comor-websocket-client.umd.js"></script>

Example for w-comor-websocket-client:

Link: [dev source code]

//opt
let opt = {
    url: 'ws://localhost:8080',
    token: '*',
    open: function() {
        console.log('client web: open')
    },
    close: function() {
        console.log('client web: close')
    },
    error: function(err) {
        console.log('client web: error:', err)
    },
    reconn: function() {
        console.log('client web: reconn')
    },
}

//WComorWebsocketClient let WComorWebsocketClient = window'w-comor-websocket-client' new WComorWebsocketClient(opt) .then(function(wo) { console.log('client web: funcs: ', wo)

    function core(ps) {
        wo.group.plus(ps)
            .then(function(r) {
                console.log('client web: plus(' + JSON.stringify(ps) + ')=' + r)
            })
            .catch(function(err) {
                console.log('client web: plus: catch: ', err)
            })
        wo.group.div(ps)
            .then(function(r) {
                console.log('client web: div(' + JSON.stringify(ps) + ')=' + r)
            })
            .catch(function(err) {
                console.log('client web: div: catch: ', err)
            })
        wo.add(ps)
            .then(function(r) {
                console.log('client web: add('+JSON.stringify(ps)+')='+r)
            })
            .catch(function(err) {
                console.log('client web: add: catch: ', err)
            })
        wo.minu(ps)
            .then(function(r) {
                console.log('client web: minu('+JSON.stringify(ps)+')='+r)
            })
            .catch(function(err) {
                console.log('client web: minu: catch: ', err)
            })
    }

    let i = 100
    setInterval(function() {
        i += 1
        core({
            p1: i,
            p2: 10,
        })
    }, 1000)

})
.catch(function(err) {
    console.log('client web: catch: ', err)
})
1.0.38

1 month ago

1.0.37

2 months ago

1.0.36

1 year ago

1.0.35

1 year ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

3 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago