@wahr/capacitor-websocket-client

July 15, 2023 ยท View on GitHub

Downloads License Issues Version

Capacitor WebSocket Client Plugin.

Install

npm install @wahr/capacitor-websocket-client
npx cap sync

Platform support

  • Web
  • Android

Unfortunately, we do not have a macOS device, but we are working hard.

Example

Single connect

await WebSocket.onOpen({}, (message, err) => {
    //do something...
    console.log("onOpen event have a bug: ", err?.toString())
})

await WebSocket.onMessage({}, (message, err) => {
    //do something...
    console.log(`received message content: ${message?.data}`)
})

await WebSocket.connect({url: "ws://example.com"})

setTimeout(async () => {
    await WebSocket.send({data: "hello world!"})
}, 2000);

Multiple connect

await WebSocket.onOpen({id: "chat-websocket"}, (message, err) => {
    //do something...
    console.log("onOpen event have a bug: ", err?.toString())
})

await WebSocket.connect({url: "ws://example.com/chat", id: "chat-websocket"})

await WebSocket.onMessage({id: "notify-websocket"}, (message, err) => {
    //do something...
    console.log(`received notify content: ${message?.data}`)
})

await WebSocket.connect({url: "ws://example.com/notify", id: "notify-websocket"})

setTimeout(async () => {
    await WebSocket.send({data: "hello world!", id: "chat-websocket"})
    await WebSocket.send({data: "connect notify.", id: "notify-websocket"})
}, 2000)

API

connect(...)

connect(options
:
ConnectionOptions
) =>
Promise<void>

Initiate a WebSocket connection.

ParamTypeDescription
optionsConnectionOptionsThe options for the connection.

Since: 0.0.1


close(...)

close(options ? : CloseOptions | undefined)
=>
Promise<void>

Close the connection.

ParamType
optionsCloseOptions

send(...)

send(options
:
SendMessageOptions
) =>
Promise<void>

Send a message.

ParamTypeDescription
optionsSendMessageOptionsThe options for the message.

Since: 0.0.1


onOpen(...)

onOpen(options
:
OnOpenOptions, callback
:
OnOpenCallback
) =>
Promise<void>

Register a callback to be invoked when the connection is opened.

ParamTypeDescription
optionsOnOpenOptionsThe options for the connection info.
callbackOnOpenCallbackThe callback that will be invoked.

Since: 0.0.3


onMessage(...)

onMessage(options
:
OnMessageOptions, callback
:
OnMessageCallback
) =>
Promise<void>

Register a callback to be invoked when a message is received.

ParamTypeDescription
optionsOnMessageOptionsThe options for the message info.
callbackOnMessageCallbackThe callback that will be invoked.

Since: 0.0.3


onClose(...)

onClose(options
:
OnCloseOptions, callback
:
OnCloseCallback
) =>
Promise<void>

Register a callback to be invoked when the connection is closed.

ParamTypeDescription
optionsOnCloseOptionsThe options for the connection info.
callbackOnCloseCallbackThe callback that will be invoked.

Since: 0.0.3


onError(...)

onError(options
:
OnErrorOptions, callback
:
OnErrorCallback
) =>
Promise<void>

Register a callback to be invoked when an error occurs.

ParamTypeDescription
optionsOnErrorOptionsThe options for the error info.
callbackOnErrorCallbackThe callback that will be invoked.

Since: 0.0.3


Interfaces

ConnectionOptions

PropTypeDescriptionSince
urlstringThe URL to which to connect; this should be the URL to which the WebSocket server will respond.0.0.1
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

CloseOptions

PropTypeDescription
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.
codenumberAn integer WebSocket connection close code value indicating a reason for closure. Status code as defined by Section 7.4 of RFC 6455.
reasonstringA string explaining the reason for the connection close.

SendMessageOptions

PropTypeDescriptionSince
datastringThe data to send to the server.0.0.1
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnOpenOptions

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnOpenData

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnMessageOptions

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnMessageData

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1
datastringThe data sent by the message emitter.0.0.1

OnCloseOptions

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnCloseData

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1
codenumberAn integer WebSocket connection close code value indicating a reason for closure. Status code as defined by Section 7.4 of RFC 6455.0.0.1
reasonstringA string explaining the reason for the connection close.0.0.1

OnErrorOptions

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1

OnErrorData

PropTypeDescriptionSince
idstringThe ID uniquely identifies a connection; no input is required, if you do not need multiple connections.0.0.1
errorstringThe error message.0.0.1

Type Aliases

OnOpenCallback

(message: OnOpenData | null, err?: any): void

OnMessageCallback

(message: OnMessageData | null, err?: any): void

OnCloseCallback

(message: OnCloseData | null, err?: any): void

OnErrorCallback

(message: OnErrorData | null, err?: any): void