A UDP Socket Plugin for capacitor
Thanks @unitree-czk
npm install capacitor-udp-socket
npx cap synccreate(...)update(...)bind(...)send(...)close(...)closeAllSockets()setBroadcast(...)setPaused(...)getInfo(...)getSockets()joinGroup(...)leaveGroup(...)getJoinedGroups()setMulticastTimeToLive(...)setMulticastLoopbackMode(...)addListener('receive', ...)addListener('receiveError', ...)- Interfaces
UDP socket plugin for Capacitor.
Only available on Android and iOS.
create(options?: CreateOptions | undefined) => Promise<CreateResult>Create a socket for udp, and you can create more than one differentiated by the socket id.
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
CreateOptions |
Returns: Promise<CreateResult>
Since: 5.0.0
update(options: UpdateOptions) => Promise<void>Update the socket info including socket name and buffer size.
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
UpdateOptions |
Since: 5.0.0
bind(options: BindOptions) => Promise<void>You need to bind a socket before sending and receiving data.
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
BindOptions |
Since: 5.0.0
send(options: SendOptions) => Promise<SendResult>Send udp data
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
SendOptions |
Returns: Promise<SendResult>
Since: 5.0.0
close(options: CloseOptions) => Promise<void>Close one socket
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
CloseOptions |
Since: 5.0.0
closeAllSockets() => Promise<void>Close All Sockets
Only available on Android and iOS.
Since: 5.0.0
setBroadcast(options: SetBroadcastOptions) => Promise<void>After enabling broadcasting, you can send data with target address 255.255.255.255.
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
SetBroadcastOptions |
Since: 5.0.0
setPaused(options: SetPausedOptions) => Promise<void>Pause receiving data.
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
SetPausedOptions |
Since: 5.0.0
getInfo(options: InfoOptions) => Promise<InfoResult>Get Socket information
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
InfoOptions |
Returns: Promise<InfoResult>
Since: 5.0.0
getSockets() => Promise<GetSocketsResult>Obtain all the sockets available.
Only available on Android and iOS.
Returns: Promise<GetSocketsResult>
Since: 5.0.0
joinGroup(options: JoinGroupOptions) => Promise<void>Join a particular group address. For IPv4, it's like "238.12.12.12". For IPv6, it's like "ff02::08".
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
JoinGroupOptions |
Since: 5.0.0
leaveGroup(options: LeaveGroupOptions) => Promise<void>Leave a particular group address. For IPv4, it's like "238.12.12.12". For IPv6, it's like "ff02::08".
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
LeaveGroupOptions |
Since: 5.0.0
getJoinedGroups() => Promise<GetJoinedGroupsResult>Get joined groups
Only available on Android and iOS.
Returns: Promise<GetJoinedGroupsResult>
Since: 5.0.0
setMulticastTimeToLive(options: SetMulticastTimeToLiveOptions) => Promise<void>Set the time to live (TTL) for multicast packets
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
SetMulticastTimeToLiveOptions |
Since: 5.0.0
setMulticastLoopbackMode(options: SetMulticastLoopbackModeOptions) => Promise<void>Set whether to enable multicast loopback mode
Only available on Android and iOS.
| Param | Type |
|---|---|
options |
SetMulticastLoopbackModeOptions |
Since: 5.0.0
addListener(eventName: 'receive', listenerFunc: (event: ReceiveEvent) => void) => Promise<PluginListenerHandle>Listening for data reception events
Only available on Android and iOS.
| Param | Type |
|---|---|
eventName |
'receive' |
listenerFunc |
(event: ReceiveEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 5.0.0
addListener(eventName: 'receiveError', listenerFunc: (event: ReceiveEvent) => void) => Promise<PluginListenerHandle>Listening for data reception exception events
Only available on Android and iOS.
| Param | Type |
|---|---|
eventName |
'receiveError' |
listenerFunc |
(event: ReceiveEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 5.0.0
Result of creating a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
ipv4 |
string |
ipv4 address |
ipv6 |
string |
ipv6 address |
Parameters for creating a UDP socket
| Prop | Type |
|---|---|
properties |
{ name?: string; bufferSize?: number; } |
Parameters for updating a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
properties |
{ name?: string; bufferSize?: number; } |
Parameters for binding a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
address |
string |
The address to bind to. If not specified, the socket will be bound to the wildcard address. |
port |
number |
The port to bind to. |
Result of sending data
| Prop | Type |
|---|---|
bytesSent |
number |
Parameters for sending data
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
address |
string |
The address of the remote host. |
port |
number |
The port of the remote host. |
buffer |
string |
The data to send. |
Parameters for closing a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
Parameters for settings broadcast mode
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
enabled |
boolean |
Whether to enable broadcast mode. |
Parameters for binding a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
paused |
boolean |
Whether to pause receiving data |
Result of getting information about a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
name |
string | null |
The name of the socket, which can be used to distinguish between multiple sockets. |
bufferSize |
number |
The size of the buffer used to receive data. |
paused |
boolean |
Whether data reception has been suspended。 |
localAddress |
string |
The address to which the socket is bound. |
localPort |
number |
The port to which the socket is bound. |
Parameters for getting information about a UDP socket
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
Parameters for getting information about all UDP sockets
| Prop | Type | Description |
|---|---|---|
sockets |
InfoResult[] |
The list of UDP sockets |
Parameters for joining a multicast group
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
address |
string |
The address of the multicast group to join. For IPv4, it's like "238.12.12.12". For IPv6, it's like "ff02::08". |
Parameters for leaving a multicast group
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
address |
string |
The address of the multicast group to leave. For IPv4, it's like "238.12.12.12". For IPv6, it's like "ff02::08". |
Parameters for getting joined multicast groups
| Prop | Type | Description |
|---|---|---|
groups |
[string] |
The list of multicast group addresses |
Parameters for setting multicast time to live
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
ttl |
number |
The time to live value. |
Parameters for setting multicast loopback mode
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
enabled |
boolean |
Whether to enable multicast loopback mode. |
| Prop | Type |
|---|---|
remove |
() => Promise<void> |
Result of receiving data
| Prop | Type | Description |
|---|---|---|
socketId |
number |
The id of the socket |
buffer |
string |
The data received. |
remoteAddress |
string |
The address of the remote host. |
remotePort |
number |
The port of the remote host. |
error |
string |
Error message |