WConverwsServer

WConverwsServer

new WConverwsServer(optopt) → {Object}

Description:
  • 建立WebSocket伺服器

Source:
Example
import WConverwsServer from 'w-converws/dist/w-converws-server.umd.js'

let opt = {
    port: 8080,
}

//new
let wo = new WConverwsServer(opt)

wo.on('open', function() {
    console.log(`Server[port:${opt.port}]: open`)

    //broadcast
    // let n = 0
    // setInterval(() => {
    //     n += 1
    //     let o = {
    //         text: `server broadcast hi(${n})`,
    //         data: new Uint8Array([66, 97, 115]), //support Uint8Array data
    //     }
    //     wo.broadcast(o, function (prog) {
    //         console.log('broadcast prog', prog)
    //     })
    // }, 1000)

})
wo.on('error', function(err) {
    console.log(`Server[port:${opt.port}]: error`, err)
})
wo.on('clientChange', function(clients) {
    console.log(`Server[port:${opt.port}]: now clients: ${clients.length}`)
})
wo.on('execute', function(func, input, callback) {
    console.log(`Server[port:${opt.port}]: execute`, func, input)

    if (func === 'add') {
        let r = input.p1 + input.p2
        callback(r)
    }

})
wo.on('broadcast', function(data) {
    console.log(`Server[port:${opt.port}]: broadcast`, data)
})
wo.on('deliver', function(data) {
    console.log(`Server[port:${opt.port}]: deliver`, data)
})
Parameters:
Name Type Attributes Default Description
opt Object <optional>
{}

輸入設定物件,預設{}

Properties
Name Type Attributes Default Description
port Integer <optional>
8080

輸入WebSocket伺服器所在port,預設8080

strSplitLength Integer <optional>
1000000

輸入傳輸封包長度整數,預設為1000000

Returns:

回傳通訊物件,可監聽事件open、error、clientChange、execute、broadcast、deliver,可使用函數broadcast

Type
Object

Methods

(static) broadcast(data)

Description:
  • WebSocket通訊物件對客戶端廣播函數

Source:
Example
let data = {...}
wo.broadcast(data)
Parameters:
Name Type Description
data *

輸入廣播函數之輸入資訊

(static) onBroadcast(data)

Description:
  • WebSocket監聽客戶端廣播事件

Source:
Example
wo.on('broadcast', function(data) {
    ...
})
Parameters:
Name Type Description
data *

傳入廣播訊息

(static) onClientChange()

Description:
  • WebSocket監聽客戶端變更(上下線)事件

Source:
Example
wo.on('clientChange', function(clients) {
    ...
})

(static) onDeliver(data)

Description:
  • WebSocket監聽客戶端交付事件

Source:
Example
wo.on('deliver', function(data) {
    ...
})
Parameters:
Name Type Description
data *

傳入交付訊息

(static) onError(err)

Description:
  • WebSocket監聽錯誤事件

Source:
Example
wo.on('error', function(err) {
    ...
})
Parameters:
Name Type Description
err *

傳入錯誤訊息

(static) onExecute(func, input, callback, sendData)

Description:
  • WebSocket監聽客戶端執行事件

Source:
Example
wo.on('execute', function(func, input, callback, sendData) {
    ...
})
Parameters:
Name Type Description
func String

傳入執行函數名稱字串

input *

傳入執行函數之輸入數據

callback function

傳入執行函數之回調函數

sendData function

傳入執行函數之強制回傳函數,提供傳送任意訊息給客戶端,供由服器多次回傳數據之用

(static) onOpen()

Description:
  • WebSocket監聽開啟事件

Source:
Example
wo.on('open', function() {
    ...
})