Skip to content

OrdinarySF/capacitor-websocket-client

Repository files navigation

@wahr/capacitor-websocket-client

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.

Param Type Description
options ConnectionOptions The options for the connection.

Since: 0.0.1


close(...)

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

Close the connection.

Param Type
options CloseOptions

send(...)

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

Send a message.

Param Type Description
options SendMessageOptions The 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.

Param Type Description
options OnOpenOptions The options for the connection info.
callback OnOpenCallback The 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.

Param Type Description
options OnMessageOptions The options for the message info.
callback OnMessageCallback The 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.

Param Type Description
options OnCloseOptions The options for the connection info.
callback OnCloseCallback The 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.

Param Type Description
options OnErrorOptions The options for the error info.
callback OnErrorCallback The callback that will be invoked.

Since: 0.0.3


Interfaces

ConnectionOptions

Prop Type Description Since
url string The URL to which to connect; this should be the URL to which the WebSocket server will respond. 0.0.1
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

CloseOptions

Prop Type Description
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections.
code number An integer WebSocket connection close code value indicating a reason for closure. Status code as defined by Section 7.4 of RFC 6455.
reason string A string explaining the reason for the connection close.

SendMessageOptions

Prop Type Description Since
data string The data to send to the server. 0.0.1
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnOpenOptions

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnOpenData

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnMessageOptions

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnMessageData

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1
data string The data sent by the message emitter. 0.0.1

OnCloseOptions

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnCloseData

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1
code number An 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
reason string A string explaining the reason for the connection close. 0.0.1

OnErrorOptions

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1

OnErrorData

Prop Type Description Since
id string The ID uniquely identifies a connection; no input is required, if you do not need multiple connections. 0.0.1
error string The 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