Browse Source

Event handling fixed

master
Nikita 13 years ago
parent
commit
4bc409e3b9
  1. 7
      src/main/java/com/corundumstudio/socketio/PacketListener.java
  2. 17
      src/main/java/com/corundumstudio/socketio/SocketIOClient.java
  3. 3
      src/main/java/com/corundumstudio/socketio/SocketIOListener.java
  4. 29
      src/main/java/com/corundumstudio/socketio/transport/BaseClient.java

7
src/main/java/com/corundumstudio/socketio/PacketListener.java

@ -39,7 +39,12 @@ public class PacketListener {
break;
case EVENT:
socketIOHandler.onEvent(client, packet);
Object data = null;
if (packet.getArgs() != null
&& !packet.getArgs().isEmpty()) {
data = packet.getArgs().get(0);
}
socketIOHandler.onEvent(client, packet.getName(), data);
break;
case HEARTBEAT:

17
src/main/java/com/corundumstudio/socketio/SocketIOClient.java

@ -80,6 +80,23 @@ public interface SocketIOClient {
*/
void disconnect();
/**
* Send event
*
* @param name - event name
* @param data - event data
*/
void sendEvent(String name, Object data);
/**
* Send event with ack callback
*
* @param name - event name
* @param data - event data
* @param ackCallback - ack callback
*/
void sendEvent(String name, Object data, Runnable ackCallback);
SocketAddress getRemoteAddress();
}

3
src/main/java/com/corundumstudio/socketio/SocketIOListener.java

@ -15,7 +15,6 @@
*/
package com.corundumstudio.socketio;
import com.corundumstudio.socketio.parser.Packet;
public interface SocketIOListener {
@ -27,6 +26,6 @@ public interface SocketIOListener {
void onDisconnect(SocketIOClient client);
void onEvent(SocketIOClient client, Packet packet);
void onEvent(SocketIOClient client, String name, Object data);
}

29
src/main/java/com/corundumstudio/socketio/transport/BaseClient.java

@ -16,6 +16,7 @@
package com.corundumstudio.socketio.transport;
import java.net.SocketAddress;
import java.util.Collections;
import java.util.UUID;
import org.jboss.netty.channel.Channel;
@ -42,10 +43,26 @@ abstract class BaseClient implements SocketIOClient {
}
@Override
public void sendMessage(String message, Runnable callback) {
public void sendEvent(String name, Object data) {
Packet packet = new Packet(PacketType.EVENT);
packet.setName(name);
packet.setArgs(Collections.singletonList(data));
send(packet);
}
@Override
public void sendEvent(String name, Object data, Runnable ackCallback) {
Packet packet = new Packet(PacketType.EVENT);
packet.setName(name);
packet.setArgs(Collections.singletonList(data));
send(packet);
}
@Override
public void sendMessage(String message, Runnable ackCallback) {
Packet packet = new Packet(PacketType.MESSAGE);
packet.setData(message);
send(packet, callback);
send(packet, ackCallback);
}
@Override
@ -68,17 +85,17 @@ abstract class BaseClient implements SocketIOClient {
}
@Override
public void send(Packet packet, Runnable callback) {
long index = ackManager.registerAck(sessionId, callback);
public void send(Packet packet, Runnable ackCallback) {
long index = ackManager.registerAck(sessionId, ackCallback);
packet.setId(index);
send(packet);
}
@Override
public void sendJsonObject(Object object, Runnable callback) {
public void sendJsonObject(Object object, Runnable ackCallback) {
Packet packet = new Packet(PacketType.JSON);
packet.setData(object);
send(packet, callback);
send(packet, ackCallback);
}
@Override

Loading…
Cancel
Save