public abstract class AbstractWsEndpoint
extends javax.websocket.Endpoint
| 限定符和类型 | 字段和说明 |
|---|---|
protected ConcurrentHashMap<String,WsHandler> |
handlers
存放Websocket Session Id --> WsHandler 的映射关系
|
protected Field |
idField
用于修改Session的Id字段
|
protected String |
roomPrefix |
protected WsRoomProvider |
roomProvider
房间提供者.
|
protected ConcurrentHashMap<String,javax.websocket.Session> |
sessions
存放Websocket Session Id --> Session 的映射关系
|
| 构造器和说明 |
|---|
AbstractWsEndpoint() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
changeSessionId(javax.websocket.Session session)
WebSocketSession只对当前JVM是唯一的,所以我们要改造一下, 变成UUID.
|
WsHandler |
createHandler(javax.websocket.Session session,
javax.websocket.EndpointConfig config)
根据WebSocket会话创建一个WsHandler.
|
void |
each(String room,
org.nutz.lang.Each<javax.websocket.Session> callback)
按房间遍历活跃的session对象
|
WsHandler |
getHandler(String wsid)
根据wsid获取其WsHandler实例
|
String |
getRoomPrefix() |
WsRoomProvider |
getRoomProvider() |
javax.websocket.Session |
getSession(String wsid)
返回一个活跃的WebSocket Session对象
|
javax.websocket.Session |
getSession(String wsid,
boolean opened)
根据wsid获取一个Session对象.
|
void |
onClose(javax.websocket.Session session,
javax.websocket.CloseReason closeReason)
WebSocket会话关闭是调用本方法,通常是用户关闭浏览器.
|
void |
onError(javax.websocket.Session session,
Throwable throwable)
WebSocket会话出错时调用,默认调用onClose.
|
void |
onOpen(javax.websocket.Session session,
javax.websocket.EndpointConfig config)
Websocket会话创建成功时调用本方法, 将创建WsHandler实例,并登记之.
|
boolean |
sendBinary(String wsid,
Object msg)
异步非阻塞发送一段二进制数据到指定的WebSocket Session
|
boolean |
sendBinarySync(String wsid,
Object msg)
sendBinary的同步阻塞版本
|
boolean |
sendJson(String wsid,
Object msg)
异步非阻塞发送文本信息到指定的WebSocket Session
|
boolean |
sendJsonSync(String wsid,
Object msg)
sendJson的同步阻塞版本
|
boolean |
sendText(String wsid,
CharSequence text)
异步非阻塞发送文本信息到指定的WebSocket Session
|
boolean |
sendTextSync(String wsid,
CharSequence text)
sendText的同步阻塞版本
|
void |
setRoomPrefix(String roomPrefix) |
void |
setRoomProvider(WsRoomProvider roomProvider) |
ByteBuffer |
toByteBuffer(Object msg)
把byte[]/InputStream/ByteBuffer转换为ByteBuffer,其他类型的实例将toString()然后转byte[]再封装为ByteBuffer
|
protected ConcurrentHashMap<String,WsHandler> handlers
protected ConcurrentHashMap<String,javax.websocket.Session> sessions
protected WsRoomProvider roomProvider
protected Field idField
protected String roomPrefix
public void onOpen(javax.websocket.Session session,
javax.websocket.EndpointConfig config)
onOpen 在类中 javax.websocket.Endpointpublic void onClose(javax.websocket.Session session,
javax.websocket.CloseReason closeReason)
onClose 在类中 javax.websocket.Endpointpublic void onError(javax.websocket.Session session,
Throwable throwable)
onError 在类中 javax.websocket.Endpointprotected void changeSessionId(javax.websocket.Session session)
public WsHandler createHandler(javax.websocket.Session session, javax.websocket.EndpointConfig config)
public javax.websocket.Session getSession(String wsid)
wsid - session的idpublic javax.websocket.Session getSession(String wsid, boolean opened)
wsid - session的idopened - 是否检查活跃状态public boolean sendText(String wsid, CharSequence text)
wsid - session的idtext - 文本信息public boolean sendTextSync(String wsid, CharSequence text)
wsid - session的idtext - 文本信息public boolean sendJson(String wsid, Object msg)
wsid - session的idmsg - 将转换为Json字符串的对象public boolean sendJsonSync(String wsid, Object msg)
wsid - session的idmsg - 将转换为Json字符串的对象public ByteBuffer toByteBuffer(Object msg)
msg - byte[]/InputStream/ByteBuffer等对象public boolean sendBinary(String wsid, Object msg)
wsid - session的idmsg - byte[]/InputStream/ByteBuffer等public void each(String room, org.nutz.lang.Each<javax.websocket.Session> callback)
room - callback - public WsRoomProvider getRoomProvider()
public void setRoomProvider(WsRoomProvider roomProvider)
public String getRoomPrefix()
public void setRoomPrefix(String roomPrefix)
Copyright © 2017. All rights reserved.