Skip to content

kaidegit/uniapp-kcp

 
 

Repository files navigation

uniapp-kcp [WIP]

uniapp Implementation of the KCP Protocol.

JavaScript KCP

Code from bruce48x/kcpjs , as3long/kcpjs and koreymadden/react-native-kcp.

Note: The forward error correction (FEC) feature has been removed from the codebase due to the presence of C++ code. Encrytion is also not supported with this package.

Installation

Install react-native-udp library

npm install react-native-udp

Install react-native-kcp library

npm install react-native-kcp

API

Create Server

Listen

Parameters

Parameter Type Description
UDP Socket UdpSocket Socket created by react-native-udp.
Callback ListenCallback Callback when UDP Session is created.

Note: You will need to make sure to bind the socket before you pass it into the Listen function.

Create Client

Dial

Parameters

Parameter Type Description
UDP Socket UdpSocket Socket created by react-native-udp.
Options DialOptions Options to configure KCP client.

Note: You will need to make sure to bind the socket before you pass it into the Dial function.

DialOptions Properties

Property Type Description
host string Server address.
port number Server port.
conv number Session ID.

Server Example

import dgram from 'react-native-udp';
import { Listen } from 'react-native-kcp';

export const kcpServer = () => {
    const socketInstance = dgram.createSocket({ type: 'udp4' });
    socketInstance.bind(port);

    const listener = Listen(socketInstance, (session) => {
        session.on('recv', (buff: Buffer) => {
            const messageFromClient = buff.toString();
            console.debug('[MESSAGE RECEIVED FROM CLIENT]:', messageFromClient);
            console.debug('[SENDING MESSAGE BACK]');
            session.write(Buffer.from(`[GREETINGS FROM HOST]: ${messageFromClient}`));
        });
    });
};

Client Example

import dgram from 'react-native-udp';
import { Dial } from 'react-native-kcp';

export const kcpClient = () => {
    const socketInstance = dgram.createSocket({ type: 'udp4' });
    socketInstance.bind(port);

    const socket = Dial(socketInstance, {
        conv,
        host,
        port,
    });

    socket.on('recv', (buff: Buffer) => {
        console.debug('[RECEIVED KCP MESSAGE]:', buff.toString());
    });

    setInterval(() => {
        const message = Buffer.from(new Date().toISOString());
        console.debug(`[SENDING MESSAGE]: ${message.toString()}`);
        console.debug('[DESTINATION]:', `${socket.host}:${socket.port}`);
        socket.write(message);
    }, 5000);
};

About

uniapp Implementation of the KCP Protocol.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.4%
  • JavaScript 1.6%