public class WebsocketEndPoint implements WebSocketHandler {
private static final ArrayList<WebSocketSession> users;
static {
users = new ArrayList<WebSocketSession>();
}
@Override
public void afterConnectionEstablished( WebSocketSession session ) throws Exception {
users.add( session );
String username = (String) session.getAttributes().get( "username" );
System.out.println( username + "登陆成功" );
}
@Override
public void handleMessage( WebSocketSession session, WebSocketMessage<?> message ) throws Exception {
// TODO Auto-generated method stub
System.out.println( "接收到用户:" + (String) session.getAttributes().get( "username" ) + " 发送的信息:"
+ message.getPayload().toString() );
sendMessageToUser( "dave", new TextMessage( (String) session.getAttributes().get( "username" ) + "发送给您:"
+ message.getPayload() ) );
}
@Override
public void handleTransportError( WebSocketSession session, Throwable exception ) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterConnectionClosed( WebSocketSession session, CloseStatus closeStatus ) throws Exception {
// TODO Auto-generated method stub
}
@Override
public boolean supportsPartialMessages() {
// TODO Auto-generated method stub
return false;
}
public void sendMessageToUser( String username, TextMessage message ) throws IOException {
for ( WebSocketSession user : users ) {
if ( username.equals( user.getAttributes().get( "username" ) ) ) {
user.sendMessage( message );
}
}
}