This commit is contained in:
wentch
2016-01-19 11:21:00 +08:00
parent 23dabde434
commit 8db5ff286a
2 changed files with 31 additions and 25 deletions

View File

@@ -94,13 +94,6 @@ public abstract class WebSocket {
return rs;
}
/**
* 显式地关闭WebSocket
*/
public final void close() {
if (this._runner != null) this._runner.closeRunner();
}
/**
* 发送单一的文本消息
*
@@ -122,16 +115,6 @@ public abstract class WebSocket {
return send(new WebSocketPacket(text, last));
}
/**
* 发送单一的二进制消息
*
* @param data byte[]
* @return 0表示成功 非0表示错误码
*/
public final int send(byte[] data) {
return send(data, true);
}
public final int sendPing() {
//if (_engine.finest) _engine.logger.finest(this + " on "+_engine.getEngineid()+" ping...");
return send(WebSocketPacket.DEFAULT_PING_PACKET);
@@ -149,6 +132,16 @@ public abstract class WebSocket {
return createtime;
}
/**
* 发送单一的二进制消息
*
* @param data byte[]
* @return 0表示成功 非0表示错误码
*/
public final int send(byte[] data) {
return send(data, true);
}
/**
* 发送二进制消息
*
@@ -219,7 +212,7 @@ public abstract class WebSocket {
}
/**
* 给指定groupid的WebSocketGroup下最近活跃的WebSocket节点发送文本消息
* 给指定groupid的WebSocketGroup下最近接入的WebSocket节点发送文本消息
*
* @param groupid groupid
* @param text 不可为空
@@ -230,7 +223,7 @@ public abstract class WebSocket {
}
/**
* 给指定groupid的WebSocketGroup下最近活跃的WebSocket节点发送二进制消息
* 给指定groupid的WebSocketGroup下最近接入的WebSocket节点发送二进制消息
*
* @param groupid groupid
* @param data 不可为空
@@ -241,7 +234,7 @@ public abstract class WebSocket {
}
/**
* 给指定groupid的WebSocketGroup下最近活跃的WebSocket节点发送文本消息
* 给指定groupid的WebSocketGroup下最近接入的WebSocket节点发送文本消息
*
* @param groupid groupid
* @param text 不可为空
@@ -253,7 +246,7 @@ public abstract class WebSocket {
}
/**
* 给指定groupid的WebSocketGroup下最近活跃的WebSocket节点发送二进制消息
* 给指定groupid的WebSocketGroup下最近接入的WebSocket节点发送二进制消息
*
* @param groupid groupid
* @param data 不可为空
@@ -359,7 +352,7 @@ public abstract class WebSocket {
}
/**
* 获取客户端真实地址
* 获取客户端真实地址 同 HttpRequest.getRemoteAddr()
*
* @return String
*/
@@ -387,13 +380,18 @@ public abstract class WebSocket {
return _engine.getWebSocketGroup(groupid);
}
/**
* 获取当前进程节点所有在线的WebSocketGroup
*
* @return
*/
protected final Collection<WebSocketGroup> getWebSocketGroups() {
return _engine.getWebSocketGroups();
}
//-------------------------------------------------------------------
/**
* 返回sessionid, null表示连接不合法或异常
* 返回sessionid, null表示连接不合法或异常,默认实现是request.getSessionid(false),通常需要重写该方法
*
* @param request HttpRequest
* @return sessionid
@@ -403,13 +401,14 @@ public abstract class WebSocket {
}
/**
* 创建groupid null表示异常
* 创建groupid null表示异常 必须实现该方法, 通常为用户ID为groupid
*
* @return groupid
*/
protected abstract Serializable createGroupid();
/**
* 标记为WebSocketBinary才需要重写此方法
*
* @param channel 请求连接
*/
@@ -440,6 +439,13 @@ public abstract class WebSocket {
public void onClose(int code, String reason) {
}
/**
* 显式地关闭WebSocket
*/
public final void close() {
if (this._runner != null) this._runner.closeRunner();
}
@Override
public String toString() {
return "ws" + Objects.hashCode(this) + "@" + _remoteAddr;

View File

@@ -10,7 +10,7 @@ import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* 被标记为 @WebSocketBinary 的WebSocketServlet 将使用原始的TCP传输, 通常用于类似音频/视频传输场景
* 被标记为 &#64;WebSocketBinary 的WebSocketServlet 将使用原始的TCP传输, 通常用于类似音频/视频传输场景
*
* <p> 详情见: http://www.redkale.org
* @author zhangjx