cn.xishan.oftenporter.bridge.http.websocket.WSClient Maven / Gradle / Ivy
package cn.xishan.oftenporter.bridge.http.websocket;
import java.io.IOException;
/**
* @author Created by https://github.com/CLovinr on 2017/10/12.
*/
public class WSClient
{
ClientWebSocket.Type type;
SessionImpl session;
Object object;
/**
* 返回值类型:
*
* -
* {@linkplain ClientWebSocket.Type#ON_OPEN}:null
*
* -
* {@linkplain ClientWebSocket.Type#ON_MESSAGE}:String
*
* -
* {@linkplain ClientWebSocket.Type#ON_ERROR}:Throwable
*
* -
* {@linkplain ClientWebSocket.Type#ON_CLOSE}:{@linkplain ClientCloseReason}
*
* -
* {@linkplain ClientWebSocket.Type#ON_PONG}:{@linkplain java.nio.ByteBuffer}
*
* -
* {@linkplain ClientWebSocket.Type#ON_BINARY_BYTE_BUFFER}:{@linkplain java.nio.ByteBuffer}
*
*
*
* @param
* @return
*/
public T object()
{
return (T) object;
}
public Session session()
{
return session;
}
public ClientWebSocket.Type type()
{
return type;
}
public WSClient()
{
}
public void setSession(SessionImpl session)
{
this.session = session;
}
void set(ClientWebSocket.Type type, Object object)
{
this.type = type;
this.object = object;
}
public void close() throws IOException
{
close(null);
}
public void close(ClientCloseReason closeReason) throws IOException
{
if (session == null)
{
return;
}
if (closeReason != null)
{
session.close(closeReason.getCode(), closeReason.getReason());
} else
{
session.close();
}
}
@Override
public boolean equals(Object obj)
{
if (obj == null || !(obj instanceof WSClient))
{
return false;
} else
{
WSClient ws = (WSClient) obj;
return ws.session.getId().equals(session.getId());
}
}
@Override
public int hashCode()
{
return session.getId().hashCode();
}
@Override
public String toString()
{
String builder = getClass().getName() + "@" + super.hashCode() + "-->" +
session.getClass().getSimpleName() + "@" + session.hashCode() +
",id=" + session.getId();
return builder;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy