1. Emitter类
Emitter类可以说是socket.io-client 中最重要的类,Socket.class 便继承自该类.
先看看Emitter类中定义的变量callbacks:
<span style="white-space:pre"> </span>private ConcurrentMap<String, ConcurrentLinkedQueue<Listener>> callbacks
<span style="white-space:pre"> </span>= new ConcurrentHashMap<String, ConcurrentLinkedQueue<Listener>>();
可以说整个Emitter类就是围绕着callbacks在进行操作,callbacks通过将
事件名-回调接口
保存在map类型的数据结构中,以便在事件发生时触发相应的回调接口通知监听者。
ConcurrentMap 和 ConcurrentLinkedQueue 都是线程安全的
Emitter类中定义的监听接口 Listener:
public static interface Listener {
public void call(Object... args);
}
外部监听者通过该接口监听Em