use of com.corundumstudio.socketio.protocol.Packet in project netty-socketio by mrniko.
the class InPacketHandler method channelRead0.
@Override
protected void channelRead0(io.netty.channel.ChannelHandlerContext ctx, PacketsMessage message) throws Exception {
ByteBuf content = message.getContent();
ClientHead client = message.getClient();
if (log.isTraceEnabled()) {
log.trace("In message: {} sessionId: {}", content.toString(CharsetUtil.UTF_8), client.getSessionId());
}
while (content.isReadable()) {
try {
Packet packet = decoder.decodePackets(content, client);
if (packet.hasAttachments() && !packet.isAttachmentsLoaded()) {
return;
}
Namespace ns = namespacesHub.get(packet.getNsp());
if (ns == null) {
if (packet.getSubType() == PacketType.CONNECT) {
Packet p = new Packet(PacketType.MESSAGE);
p.setSubType(PacketType.ERROR);
p.setNsp(packet.getNsp());
p.setData("Invalid namespace");
client.send(p);
return;
}
log.debug("Can't find namespace for endpoint: {}, sessionId: {} probably it was removed.", packet.getNsp(), client.getSessionId());
return;
}
if (packet.getSubType() == PacketType.CONNECT) {
client.addNamespaceClient(ns);
}
NamespaceClient nClient = client.getChildClient(ns);
if (nClient == null) {
log.debug("Can't find namespace client in namespace: {}, sessionId: {} probably it was disconnected.", ns.getName(), client.getSessionId());
return;
}
packetListener.onPacket(packet, nClient, message.getTransport());
} catch (Exception ex) {
String c = content.toString(CharsetUtil.UTF_8);
log.error("Error during data processing. Client sessionId: " + client.getSessionId() + ", data: " + c, ex);
throw ex;
}
}
}
use of com.corundumstudio.socketio.protocol.Packet in project netty-socketio by mrniko.
the class BroadcastOperations method sendEvent.
public void sendEvent(String name, SocketIOClient excludedClient, Object... data) {
Packet packet = new Packet(PacketType.MESSAGE);
packet.setSubType(PacketType.EVENT);
packet.setName(name);
packet.setData(Arrays.asList(data));
for (SocketIOClient client : clients) {
if (client.getSessionId().equals(excludedClient.getSessionId())) {
continue;
}
client.send(packet);
}
dispatch(packet);
}
use of com.corundumstudio.socketio.protocol.Packet in project netty-socketio by mrniko.
the class NamespaceClient method sendEvent.
@Override
public void sendEvent(String name, Object... data) {
Packet packet = new Packet(PacketType.MESSAGE);
packet.setSubType(PacketType.EVENT);
packet.setName(name);
packet.setData(Arrays.asList(data));
send(packet);
}
use of com.corundumstudio.socketio.protocol.Packet in project netty-socketio by mrniko.
the class NamespaceClient method sendEvent.
@Override
public void sendEvent(String name, AckCallback<?> ackCallback, Object... data) {
Packet packet = new Packet(PacketType.MESSAGE);
packet.setSubType(PacketType.EVENT);
packet.setName(name);
packet.setData(Arrays.asList(data));
send(packet, ackCallback);
}
use of com.corundumstudio.socketio.protocol.Packet in project netty-socketio by mrniko.
the class DecoderAckPacketTest method testDecode.
@Test
public void testDecode() throws IOException {
Packet packet = decoder.decodePacket("6:::140", null);
Assert.assertEquals(PacketType.ACK, packet.getType());
Assert.assertEquals(140, (long) packet.getAckId());
// Assert.assertTrue(packet.getArgs().isEmpty());
}
Aggregations