public class Connection
extends com.tuisongbao.engine.engineio.source.BaseEngineIODataSource
每个 Engine 都有一个该实例,用于建立 WebSocket 连接和底层消息的收发,包括 Chat 和 Pub/Sub。
该类提供连接状态的通知,可以通过 #bind(State, Listener)
方法绑定 Connection.State
状态的通知。
需注意的是,当连接断开时,该类 不会 再重新连接,其子类 AutoReconnectConnection
会进行自动重连。还可以绑定的事件有
Modifier and Type | Class and Description |
---|---|
static class |
Connection.State
Connection 帮助类,表连接状态,可通过绑定事件处理方法获取状态通知
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
EVENT_CONNECTING_IN
准备重新建立连接时会触发该事件,事件回调接收一个参数,类型为
int , 单位为 秒: |
static java.lang.String |
EVENT_ERROR
连接发生错误时会触发该事件,事件回调接收一个参数,类型为
String : |
static java.lang.String |
EVENT_STATE_CHANGED
连接状态发生转换时会触发该事件,事件回调接收两个参数,类型均为
Connection.State : |
Modifier and Type | Method and Description |
---|---|
void |
bind(Connection.State state,
com.github.nkzawa.emitter.Emitter.Listener listener)
绑定连接状态回调处理方法
|
void |
connect()
建立连接,可通过绑定
Connection.State 获取连接结果 |
void |
disconnect()
断开连接,可通过绑定
Connection.State 获取连接结果 |
java.lang.String |
getSocketId() |
boolean |
isConnected() |
com.tuisongbao.engine.common.event.BaseEvent |
send(com.tuisongbao.engine.common.event.BaseEvent event) |
void |
unbind(Connection.State state,
com.github.nkzawa.emitter.Emitter.Listener listener)
解绑指定处理方法
|
run, start, stop
bind, bindOnce, trigger, unbind, unbind
public static final java.lang.String EVENT_STATE_CHANGED
Connection.State
:
connection.bind(Connection.EVENT_STATE_CHANGED, new Emitter.Listener() { @Override public void call(final Object... args) { Log.i(TAG, "连接状态从 " + args[0] + " 转变为 " + args[1]); } });
public static final java.lang.String EVENT_CONNECTING_IN
int
, 单位为 秒:
connection.bind(Connection.EVENT_STATE_CHANGED, new Emitter.Listener() { @Override public void call(final Object... args) { Log.i(TAG, "将在 " + args[0] + " 秒后重连"); } });
public static final java.lang.String EVENT_ERROR
String
:
connection.bind(Connection.EVENT_STATE_CHANGED, new Emitter.Listener() { @Override public void call(final Object... args) { Log.i(TAG, "连接出错,错误原因:" + args[0]); } });
public boolean isConnected()
public java.lang.String getSocketId()
public void connect()
Connection.State
获取连接结果
如果当前状态为 Connection.State.Connected
,不会做任何操作。建议在调用 disconnect()
之后,用来恢复连接时使用。
connect
in class com.tuisongbao.engine.engineio.source.BaseEngineIODataSource
public void disconnect()
Connection.State
获取连接结果
如果当前状态为 Connection.State.Disconnected
,不会做任何操作。连接断开后,可通过调用 connect()
恢复连接。
disconnect
in class com.tuisongbao.engine.engineio.source.BaseEngineIODataSource
public void bind(Connection.State state, com.github.nkzawa.emitter.Emitter.Listener listener)
connection.bind(Connection.State.Connected, new Emitter.Listener() { @Override public void call(final Object... args) { Connection.State state = (Connection.State)args[0]; Log.i(TAG, "Connection state: " + state.toString()); } });
state
- 连接状态listener
- 处理方法,回调中包含一个参数,表明当前状态,类型为 State
public void unbind(Connection.State state, com.github.nkzawa.emitter.Emitter.Listener listener)
state
- 连接状态listener
- 处理方法public com.tuisongbao.engine.common.event.BaseEvent send(com.tuisongbao.engine.common.event.BaseEvent event)