Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
suryakalvas opened this issue Sep 18, 2021 · 0 comments

Comments

@suryakalvas
Copy link

suryakalvas commented Sep 18, 2021

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant