Skip to content

how to close websocket connection from server , it should reflect in client side also. #1

@suryakalvas

Description

@suryakalvas

Hi ,
I'm trying to close the session from server end which are not websocket sessions ,
`public static final CopyOnWriteArrayList sessions = new CopyOnWriteArrayList();
private static final Map<String, WebSocketSession> sessionsWithStations = Collections.synchronizedMap(new ConcurrentHashMap<String,WebSocketSession>());

@OverRide //Look Like the OnOpen
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
try {
String clientId = session.getAttributes().get("clientId").toString();
sessions.add(session);
}catch(Exception e) {
e.printStackTrace();
}
}`

`public void sessionBaseFunctions(String functionStr,String clientId) {
	try {
		
	    WebSocketSession webSocketSession = sessionsWithStations.get(clientId);
	    if(webSocketSession != null && webSocketSession.isOpen()) {
		    webSocketSession.close(CloseStatus.NORMAL);
		    System.out.println("session termination called.....");
	    }
	}catch (Exception e) {
		e.printStackTrace();
	}
}`

calling sessionBasedFunctions method in scheduler for every 20 mins , But the thing is clientId still showing the connect and client able to send the messages.

need a solution for this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions