Skip to content

Latest commit

 

History

History
51 lines (40 loc) · 2.09 KB

File metadata and controls

51 lines (40 loc) · 2.09 KB

Simple Packet Library

A simple library to exchange packets and respond to specific packets

A rewrite of Packet Library with many important upgrades

Features

  • Custom packets
  • Responding to specific packets, creating a "side conversation" of sorts
  • Controlling the processing of packets while handling a packet
  • Web sockets (both ws:// and wss://)
  • Easy to begin using
  • Fully documented with javadocs

JavaScript variant

A JavaScript rewrite is now available! It doesn't support servers or non-WebSocket clients, but it can still communicate with a Java WebSocket server! Use this to get started:
<script src="https://luneruniverse.com/simple-packet-library" crossorigin="anonymous"></script>

How to use

The wiki contains a tutorial on how to use the different parts of the library

Refer to the Simple Packet Library Test for an example with custom packets

This is the Simple Packet Library Test 2 example

// Create the server and client
Server server = new Server(31415);
Client client = new Client("localhost", 31415);

// Start the server and client
server.start();
client.start();

// Handle packets from the client
server.addPacketListener((packet, connection, wait) -> {
    if (packet instanceof PrimitivePacket) {
        PrimitivePacket castedPacket = (PrimitivePacket) packet;
        if (castedPacket.isString() && castedPacket.getValue().equals("ping"))
            connection.reply(packet, new PrimitivePacket("pong"));
    }
});

// Send and receive a packet from the server
Packet packet = client.sendPacketWithResponse(new PrimitivePacket("ping"));
System.out.println(((PrimitivePacket) packet).getValue());

// Stop the server
server.close();

// The client is automatically disconnected and will close too