event names as constants

This commit is contained in:
Naoyuki Kanezawa
2013-04-24 11:06:05 +09:00
parent 6af64058ba
commit a1c1370eab

View File

@@ -31,6 +31,20 @@ public abstract class Socket extends Emitter {
put(CLOSED, "closed"); put(CLOSED, "closed");
}}; }};
public static final String EVENT_OPEN = "open";
public static final String EVENT_CLOSE = "close";
public static final String EVENT_HANDSHAKE = "handshake";
public static final String EVENT_UPGRADING = "upgrading";
public static final String EVENT_UPGRADE = "upgrade";
public static final String EVENT_PACKET = "packet";
public static final String EVENT_PACKET_CREATE = "packetCreate";
public static final String EVENT_HEARTBEAT = "heartbeat";
public static final String EVENT_DATA = "data";
public static final String EVENT_MESSAGE = "message";
public static final String EVENT_ERROR = "error";
public static final String EVENT_DRAIN = "drain";
public static final String EVENT_FLUSH = "flush";
private static final Runnable noop = new Runnable() { private static final Runnable noop = new Runnable() {
@Override @Override
public void run() {} public void run() {}
@@ -104,7 +118,7 @@ public abstract class Socket extends Emitter {
this.policyPort = opts.policyPort != 0 ? opts.policyPort : 843; this.policyPort = opts.policyPort != 0 ? opts.policyPort : 843;
Socket.sockets.add(this); Socket.sockets.add(this);
Socket.sockets.evs.emit("add", this); Socket.sockets.evs.emit(Sockets.EVENT_ADD, this);
} }
public void open() { public void open() {
@@ -197,7 +211,7 @@ public abstract class Socket extends Emitter {
transport[0].close(); transport[0].close();
transport[0] = null; transport[0] = null;
logger.info(String.format("probing transport '%s' failed because of error: %s", name, err)); logger.info(String.format("probing transport '%s' failed because of error: %s", name, err));
self.emit("error", error); self.emit(EVENT_ERROR, error);
} }
}; };
@@ -217,7 +231,7 @@ public abstract class Socket extends Emitter {
if ("pong".equals(msg.type) && "probe".equals(msg.data)) { if ("pong".equals(msg.type) && "probe".equals(msg.data)) {
logger.info(String.format("probe transport '%s' pong", name)); logger.info(String.format("probe transport '%s' pong", name));
self.upgrading = true; self.upgrading = true;
self.emit("upgrading", transport[0]); self.emit(EVENT_UPGRADING, transport[0]);
logger.info(String.format("pausing current transport '%s'", self.transport.name)); logger.info(String.format("pausing current transport '%s'", self.transport.name));
((Polling)self.transport).pause(new Runnable() { ((Polling)self.transport).pause(new Runnable() {
@@ -230,7 +244,7 @@ public abstract class Socket extends Emitter {
logger.info("changing transport and sending upgrade packet"); logger.info("changing transport and sending upgrade packet");
transport[0].off("error", onerror); transport[0].off("error", onerror);
self.emit("upgrade", transport); self.emit(EVENT_UPGRADE, transport);
self.setTransport(transport[0]); self.setTransport(transport[0]);
Packet packet = new Packet("upgrade", null); Packet packet = new Packet("upgrade", null);
transport[0].send(new Packet[]{packet}); transport[0].send(new Packet[]{packet});
@@ -243,7 +257,7 @@ public abstract class Socket extends Emitter {
logger.info(String.format("probe transport '%s' failed", name)); logger.info(String.format("probe transport '%s' failed", name));
EngineIOException err = new EngineIOException("probe error"); EngineIOException err = new EngineIOException("probe error");
//err.transport = transport[0].name; //err.transport = transport[0].name;
self.emit("error", err); self.emit(EVENT_ERROR, err);
} }
} }
}); });
@@ -282,7 +296,7 @@ public abstract class Socket extends Emitter {
private void onOpen() { private void onOpen() {
logger.info("socket open"); logger.info("socket open");
this.readyState = OPEN; this.readyState = OPEN;
this.emit("open"); this.emit(EVENT_OPEN);
this.onopen(); this.onopen();
this.flush(); this.flush();
@@ -298,8 +312,8 @@ public abstract class Socket extends Emitter {
if (this.readyState == OPENING || this.readyState == OPEN) { if (this.readyState == OPENING || this.readyState == OPEN) {
logger.info(String.format("socket received: type '%s', data '%s'", packet.type, packet.data)); logger.info(String.format("socket received: type '%s', data '%s'", packet.type, packet.data));
this.emit("packet", packet); this.emit(EVENT_PACKET, packet);
this.emit("heartbeat"); this.emit(EVENT_HEARTBEAT);
if ("open".equals(packet.type)) { if ("open".equals(packet.type)) {
this.onHandshake(new JsonParser().parse(packet.data).getAsJsonObject()); this.onHandshake(new JsonParser().parse(packet.data).getAsJsonObject());
@@ -309,10 +323,10 @@ public abstract class Socket extends Emitter {
// TODO: handle error // TODO: handle error
EngineIOException err = new EngineIOException("server error"); EngineIOException err = new EngineIOException("server error");
//err.code = packet.data; //err.code = packet.data;
this.emit("error", err); this.emit(EVENT_ERROR, err);
} else if ("message".equals(packet.type)) { } else if ("message".equals(packet.type)) {
this.emit("data", packet.data); this.emit(EVENT_DATA, packet.data);
this.emit("message", packet.data); this.emit(EVENT_MESSAGE, packet.data);
this.onmessage(packet.data); this.onmessage(packet.data);
} }
} else { } else {
@@ -321,7 +335,7 @@ public abstract class Socket extends Emitter {
} }
private void onHandshake(JsonObject data) { private void onHandshake(JsonObject data) {
this.emit("handshake", data); this.emit(EVENT_HANDSHAKE, data);
this.id = data.get("sid").getAsString(); this.id = data.get("sid").getAsString();
this.transport.query.put("sid", data.get("sid").getAsString()); this.transport.query.put("sid", data.get("sid").getAsString());
@@ -336,8 +350,8 @@ public abstract class Socket extends Emitter {
this.onOpen(); this.onOpen();
this.ping(); this.ping();
this.off("heartbear", this.onHeartbeatAsListener); this.off(EVENT_HEARTBEAT, this.onHeartbeatAsListener);
this.on("heartbear", this.onHeartbeatAsListener); this.on(EVENT_HEARTBEAT, this.onHeartbeatAsListener);
} }
private final Listener onHeartbeatAsListener = new Listener() { private final Listener onHeartbeatAsListener = new Listener() {
@@ -391,7 +405,7 @@ public abstract class Socket extends Emitter {
this.prevBufferLen = 0; this.prevBufferLen = 0;
if (this.writeBuffer.size() == 0) { if (this.writeBuffer.size() == 0) {
this.emit("drain"); this.emit(EVENT_DRAIN);
} else { } else {
this.flush(); this.flush();
} }
@@ -413,7 +427,7 @@ public abstract class Socket extends Emitter {
logger.info(String.format("flushing %d packets in socket", this.writeBuffer.size())); logger.info(String.format("flushing %d packets in socket", this.writeBuffer.size()));
this.prevBufferLen = this.writeBuffer.size(); this.prevBufferLen = this.writeBuffer.size();
this.transport.send(this.writeBuffer.toArray(new Packet[0])); this.transport.send(this.writeBuffer.toArray(new Packet[0]));
this.emit("flush"); this.emit(EVENT_FLUSH);
} }
} }
@@ -444,7 +458,7 @@ public abstract class Socket extends Emitter {
} }
Packet packet = new Packet(type, data); Packet packet = new Packet(type, data);
this.emit("packetCreate", packet); this.emit(EVENT_PACKET_CREATE, packet);
this.writeBuffer.offer(packet); this.writeBuffer.offer(packet);
this.callbackBuffer.offer(fn); this.callbackBuffer.offer(fn);
this.flush(); this.flush();
@@ -463,7 +477,7 @@ public abstract class Socket extends Emitter {
private void onError(Exception err) { private void onError(Exception err) {
logger.info(String.format("socket error %s", err)); logger.info(String.format("socket error %s", err));
this.emit("error", err); this.emit(EVENT_ERROR, err);
this.onClose("transport error", err); this.onClose("transport error", err);
} }
@@ -481,7 +495,7 @@ public abstract class Socket extends Emitter {
this.pingTimeoutTimer.cancel(true); this.pingTimeoutTimer.cancel(true);
} }
this.readyState = CLOSED; this.readyState = CLOSED;
this.emit("close", reason, desc); this.emit(EVENT_CLOSE, reason, desc);
this.onclose(); this.onclose();
// TODO: // TODO:
// clean buffer in next tick, so developers can still // clean buffer in next tick, so developers can still
@@ -540,6 +554,8 @@ public abstract class Socket extends Emitter {
public static class Sockets extends ConcurrentLinkedQueue<Socket> { public static class Sockets extends ConcurrentLinkedQueue<Socket> {
public static final String EVENT_ADD = "add";
public Emitter evs = new Emitter(); public Emitter evs = new Emitter();
} }
} }