В сервере websocket клиент не может соединиться с сервером - PullRequest
0 голосов
/ 03 февраля 2020

когда я запускаю приложение websocket локально с tomact-9.0.26, то работает нормально. но на сервере я развернул приложение, затем websocket не может подключиться и сервер является экземпляром ec2 (aws).

@ServerEndpoint(value = "/UpCommingNotification/{userId}" )

publi c class UpCommingNotification {

private static final Logger logger = LoggerFactory.getLogger(UpCommingNotification.class);
public static Map<String,Session> activeUser = Collections.synchronizedMap(new HashMap<String,Session>());
public UpCommingNotification() {
}

@OnOpen
public void onOpen(@PathParam("userId") String userId, Session session/* ,EndpointConfig config */){
    logger.info("Open Connection for UpCommingNotification and session is " + session.getId() + ",userId:  " + userId);
    session.getUserProperties().put(userId,session);
    activeUser.put(userId,session);
}
@OnClose
public void onClose(@PathParam("userId") String userId,Session session,CloseReason reason){
    logger.info("close socket connection for UpCommingNotification user is " + userId + " and reason is " +  reason.getCloseCode());
    activeUser.remove(userId);
}

@OnMessage
public void onMessage(@PathParam("userId") String userId, String message,Session session) throws IOException, InterruptedException{
    try {
        logger.info("OnOpen UpCommingNotification: " + message);
        SFDAL sfdal = new SFDAL();
        Object obj = JSONValue.parse(message);
        JSONObject jsonObject = (JSONObject) obj;
        AgentNotifacationBean agentNotifacationBean = new AgentNotifacationBean(jsonObject);
        JSONObject notification = sfdal.getUpComingNotification(agentNotifacationBean);
        if(activeUser.containsKey(agentNotifacationBean.getUserId()) && !notification.isEmpty()) {
            Future<Void> deliveryTracker = session.getAsyncRemote().sendText(notification.toString());
            logger.info("msg: " + notification.toString());
            logger.info("msg sent status: " + deliveryTracker.isDone());
        }

    } catch (Exception e) {
        System.err.println(e.getMessage());
    }
}

@OnError
public void onError(Throwable e){
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...