Home - Clearpool/Panda GitHub Wiki

Panda Messaging Spec

What is it

A reliable multicast protocol

Specification

Multicast Message Framing
Sequence Number Management
Heartbeats

Example: Send messages

public class PandaSendExample
{
	public static void main(String[] args) throws Exception
	{
		PandaAdapter adapter = new PandaAdapter(0);
		InetAddress interfaceIp = InetAddress.getByName(InetAddress.getLocalHost().getHostAddress());

		int count = 0;
		while (true)
		{
			String message = "Hello World - " + ++count;
			adapter.send("Hello World", "239.10.4.1", 5001, null, interfaceIp, message.getBytes());
			Thread.sleep(2000);
		}
	}
}

Example: Receive messages

public class PandaReceiveExample implements PandaDataListener
{
	@Override
	public void receivedPandaData(String topic, byte[] payload)
	{
		StringBuilder builder = new StringBuilder();
		builder.append(new Date());
		builder.append("|topic=");
		builder.append(topic);
		builder.append("|payloadLength=");
		builder.append(payload.length);
		builder.append("|payloadString=");
		builder.append(new String(payload));
		System.out.println(builder.toString());
	}

	@Override
	public void receivedPandaError(PandaErrorCode issueCode, String multicastGroup, String message, Throwable throwable)
	{
		System.out.println(issueCode + "|" + multicastGroup + "|" + message);
	}

	public static void main(String[] args) throws Exception
	{
		PandaAdapter adapter = new PandaAdapter(0);
		InetAddress interfaceIp = InetAddress.getByName(InetAddress.getLocalHost().getHostAddress());
		adapter.subscribe("Hello World", "239.10.4.1", 5001, null, interfaceIp, new PandaReceiveExample(), 100000, true);

	}
}