ByteMessagepublic class ByteMessage extends Object implements Serializable, ExternalizableA byte message is not serialized and deserialized by the channel
instead it is sent as a byte array
By default Tribes uses java serialization when it receives an object
to be sent over the wire. Java serialization is not the most
efficient of serializing data, and Tribes might not even
have access to the correct class loaders to deserialize the object properly.
The ByteMessage class is a class where the channel when it receives it will
not attempt to perform serialization, instead it will simply stream the getMessage()
bytes.
If you are using multiple applications on top of Tribes you should add some sort of header
so that you can decide with the ChannelListener.accept() whether this message was intended
for you. |
Fields Summary |
---|
private byte[] | messageStorage for the message to be sent |
Constructors Summary |
---|
public ByteMessage()Creates an empty byte message
Constructor also for deserialization
| public ByteMessage(byte[] data)Creates a byte message wit h
message = data;
|
Methods Summary |
---|
public byte[] | getMessage()Returns the message contents of this byte message
return message;
| public void | readExternal(java.io.ObjectInput in)
int length = in.readInt();
message = new byte[length];
in.read(message,0,length);
| public void | setMessage(byte[] message)Sets the message contents of this byte message
this.message = message;
| public void | writeExternal(java.io.ObjectOutput out)
out.writeInt(message!=null?message.length:0);
if ( message!=null ) out.write(message,0,message.length);
|
|