All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.voovan.http.websocket.WebSocketRouter Maven / Gradle / Ivy

package org.voovan.http.websocket;

import org.voovan.http.websocket.exception.WebSocketFilterException;
import org.voovan.tools.collection.Chain;

import java.nio.ByteBuffer;

/**
 * WebSocket 处理句柄
 * @author helyho
 *
 * Voovan Framework.
 * WebSite: https://github.com/helyho/Voovan
 * Licence: Apache v2 License
 */
public abstract class WebSocketRouter implements Cloneable{

	protected Chain webSocketFilterChain;

	public WebSocketRouter(){
		webSocketFilterChain = new Chain();
	}

	public WebSocketRouter addFilterChain(WebSocketFilter webSocketFilter) {
		webSocketFilterChain.add(webSocketFilter);
		return this;
	}

	public WebSocketRouter clearFilterChain() {
		webSocketFilterChain.clear();
		return this;
	}

	public WebSocketRouter removeFilterChain(WebSocketFilter webSocketFilter) {
		webSocketFilterChain.remove(webSocketFilter);
		return this;
	}

	public Chain getWebSocketFilterChain() {
		return webSocketFilterChain;
	}

	/**
	 * websocket 连接打开
	 * @param session WebSocket 会话
	 * @return 收到的缓冲数据
	 */
	public abstract Object onOpen(WebSocketSession session);

	/**
	 * websocket 收到消息
	 * @param session WebSocket 会话
	 * @param obj 收到的缓冲数据
	 * @return 收到的缓冲数据
	 */
	public abstract Object onRecived(WebSocketSession session, Object obj);

	/**
	 * websocket 消息发送完成
	 * @param session WebSocket 会话
	 * @param obj 发送的消息
	 */
	public abstract void onSent(WebSocketSession session, Object obj);


	/**
	 * websocket 关闭
	 * @param session WebSocket 会话
	 */
	public abstract void onClose(WebSocketSession session);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy