Java 类javax.websocket.server.PathParam 实例源码

项目:docker-restful-java    文件:ChannelEndPoint.java   
@OnMessage
public void onMessage(Session session, String message, @PathParam("id") Long id, @PathParam("nickname") String nickname) {
    LOGGER.info("Received message: " + message + " from " + nickname + " and channel n°" + id);
    JsonObject json = GsonSingleton.getInstance().fromJson(message, JsonObject.class);
    if (json != null) {
        String content = json.get(JSON_KEY_CONTENT).getAsString();
        Long channelId = json.get(JSON_KEY_CHANNEL_ID).getAsLong();
        Long userId = json.get(JSON_KEY_USER_ID).getAsLong();

        Message mess = new Message.Builder()
                .setContent(content)
                .setChannelId(channelId)
                .setNickname(nickname)
                .setUserId(userId)
                .build();

        try (Connection c = DatabaseManager.getConnection()) {
            MessageDAO messageDAO = new MessageDAO(c);
            if (messageDAO.create(mess))
                manager.broadcast(id, mess, From.Type.CLIENT);
        } catch (SQLException | InsertionException e) {
            e.printStackTrace();
        }
    }
}
项目:editor-backend    文件:RealtimeEndpoint.java   
/**
 * Close the connection and decrement the number of writers and send a
 * message to notify all others writers.
 * 
 * @param session
 *            peer session
 * @param adocId
 *            unique id for this asciidoc file
 */
@OnClose
public void closedConnection(Session session,
                             @PathParam("projectId") String adocId) {
    if (session.getUserProperties().containsKey("writer")) {
        handleWriters(adocId, false, (String) session.getUserProperties()
                .get("writer"));
    } else {
        handleReaders(adocId, false);
    }

    peers.remove(session);
    logger.log(Level.INFO, "Connection closed for " + session.getId());
    // send a message to all peers to inform that someone is disonnected
    sendNotificationMessage(createNotification(adocId), adocId);
}
项目:launcher-backend    文件:MissionControlStatusEndpoint.java   
@OnOpen
public void onOpen(Session session, @PathParam("uuid") String uuid) {
    UUID key = UUID.fromString(uuid);
    peers.put(key, session);
    JsonArrayBuilder builder = Json.createArrayBuilder();
    for (StatusEventType statusEventType : StatusEventType.values()) {
        JsonObjectBuilder object = Json.createObjectBuilder();
        builder.add(object.add(statusEventType.name(), statusEventType.getMessage()).build());
    }

    RemoteEndpoint.Async asyncRemote = session.getAsyncRemote();
    asyncRemote.sendText(builder.build().toString());
    // Send pending messages
    List<String> messages = messageBuffer.remove(key);
    if (messages != null) {
        messages.forEach(asyncRemote::sendText);
    }
}
项目:script-wars    文件:GameViewerSocket.java   
@OnOpen
public void open(@PathParam("gametype") String gameID, Session session) throws IOException {
    type = GameType.getGameType(gameID);
    if(type == null) {
        session.close(new CloseReason(CloseReason.CloseCodes.UNEXPECTED_CONDITION, "Invalid game type"));
        return;
    }

    Basic sender = session.getBasicRemote();

    viewer = data -> {
            synchronized(session) {
                if(session.isOpen())
                    try { sender.sendBinary(data); } catch (IOException e) {}
            }
    };

    DisplayHandler.addGlobalViewer(viewer);
}
项目:websocket-chat    文件:ChatServer.java   
@OnOpen
public void userConnectedCallback(@PathParam("user") String user, Session s) {
    if (USERS.contains(user)) {
        try {
            dupUserDetected = true;
            s.getBasicRemote().sendText("Username " + user + " has been taken. Retry with a different name");
            s.close();
            return;
        } catch (IOException ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    this.s = s;
    s.getUserProperties().put("user", user);
    this.user = user;
    USERS.add(user);

    welcomeNewJoinee();
    announceNewJoinee();
}
项目:scalable-websocket-chat-with-hazelcast    文件:ChatServer.java   
@OnOpen
public void userConnectedCallback(@PathParam("user") String user, Session s) {

    if (USERS.contains(user)) {
        try {
            dupUserDetected = true;
            s.getBasicRemote().sendObject(new DuplicateUserNotification(user));
            s.close();
            return;
        } catch (Exception ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    this.s = s;
    SESSIONS.add(s);
    s.getUserProperties().put("user", user);
    this.user = user;
    USERS.add(user);

    welcomeNewJoinee();
    announceNewJoinee();
}
项目:ccow    文件:SubscriptionEndpoint.java   
@OnMessage
public void onWebSocketText(final Session sess, final JSONRPC2Message msg, @PathParam(CCOWContextListener.PATH_NAME) final String applicationName) {
    if (msg instanceof JSONRPC2Request) {
        //All operations that are invokable on ContextManager that does not return void
        logger.debug("The message is a Request");
    }
    else if (msg instanceof JSONRPC2Notification) {
        //All operations that are invokable on ContextManager that does return void
        logger.debug("The message is a Notification");
    }
    else if (msg instanceof JSONRPC2Response) {
        //All operations that are invokable from ContextManager that does not return void and are initially called from ContextManager
        participant.onMessage((JSONRPC2Response) msg);
        logger.debug("The message is a Response");
    }
}
项目:watchoverme-server    文件:EventEndpoint.java   
@OnMessage
public void requestEventTracking(@PathParam("trackingPin") String trackingPin, String message, Session session) {
    myLog.debug("requestEventTracking: " + trackingPin);
    try {
        if (session.isOpen()) {
            SecqMeEventVO eventVO = eventManager.getEventByTrackingPin(trackingPin);
            FullEventInfoVO eventInfoVO = eventManager.getFullEventInfoOfContact(eventVO.getId());
            session.getBasicRemote().sendText(eventInfoVO.toJSON().toString());
        }
    } catch (IOException ex) {
        myLog.error("Tracking event web socket error: " + trackingPin, ex);
        try {
            session.close();
        } catch (IOException ex1) {
            // Ignore
        }
    }
}
项目:OpenChatAlytics    文件:RealtimeResource.java   
/**
 * Open a socket connection to a client from the web server
 *
 * @param session The session that just opened
 */
@OnOpen
public void openSocket(@PathParam(RT_COMPUTE_ENDPOINT_PARAM) ConnectionType type,
                       Session session) {
    session.setMaxIdleTimeout(0);
    String sessionId = session.getId();
    if (type == ConnectionType.SUBSCRIBER) {
        LOG.info("Got a new subscriber connection request with ID {}. Saving session", sessionId);
        // cleanup sessions
        Set<Session> closedSessions = Sets.newHashSet();
        for (Session existingSession : sessions) {
            if (!existingSession.isOpen()) {
                closedSessions.add(existingSession);
            }
        }
        sessions.removeAll(closedSessions);

        sessions.add(session);
        LOG.info("Active sessions {}. Collecting {} sessions",
                 sessions.size(), closedSessions.size());

    } else {
        LOG.info("Got a new publisher connection request with ID {}", sessionId);
    }
}
项目:JavaWeb    文件:ChartController.java   
@OnOpen
public void onOpen(Session session,@PathParam("username") String username) {
    try{
        client.add(session);
        user.put(URLEncoder.encode(username, "UTF-8"),URLEncoder.encode(username, "UTF-8"));
        JSONObject jo = new JSONObject();
        JSONArray ja = new JSONArray();
        //获得在线用户列表
        Set<String> key = user.keySet();
        for (String u : key) {
            ja.add(u);
        }
        jo.put("onlineUser", ja);
        session.getBasicRemote().sendText(jo.toString());
    }catch(Exception e){
        //do nothing
    }
}
项目:launchpad-missioncontrol    文件:MissionControlStatusEndpoint.java   
@OnOpen
public void onOpen(Session session, @PathParam("uuid") String uuid) {
    UUID key = UUID.fromString(uuid);
    peers.put(key, session);
    JsonArrayBuilder builder = Json.createArrayBuilder();
    for (StatusMessage statusMessage : StatusMessage.values()) {
        JsonObjectBuilder object = Json.createObjectBuilder();
        builder.add(object.add(statusMessage.name(), statusMessage.getMessage()).build());
    }

    RemoteEndpoint.Async asyncRemote = session.getAsyncRemote();
    asyncRemote.sendText(builder.build().toString());
    // Send pending messages
    List<String> messages = messageBuffer.remove(key);
    if (messages != null) {
        messages.forEach(asyncRemote::sendText);
    }
}
项目:docker4dev-tennistour-app    文件:MatchEndpoint.java   
@OnMessage
public void message(final Session session, BetMessage msg,  @PathParam("match-id") String matchId) {
    logger.log(Level.INFO, "Received: Bet Match Winner - {0}", msg.getWinner());
    //check if the user had already bet and save this bet
    boolean hasAlreadyBet = session.getUserProperties().containsKey("bet");
    session.getUserProperties().put("bet", msg.getWinner());

    //Send betMsg with bet count
    if (!nbBetsByMatch.containsKey(matchId)){
        nbBetsByMatch.put(matchId, new AtomicInteger());
    }
    if (!hasAlreadyBet){
        nbBetsByMatch.get(matchId).incrementAndGet();
    }
    sendBetMessages(null, matchId, false);
}
项目:msf4j    文件:EndpointValidator.java   
private boolean validateOnOpenMethod(Object webSocketEndpoint)
        throws WebSocketMethodParameterException, WebSocketEndpointMethodReturnTypeException {
    EndpointDispatcher dispatcher = new EndpointDispatcher();
    Method method;
    if (dispatcher.getOnOpenMethod(webSocketEndpoint).isPresent()) {
        method = dispatcher.getOnOpenMethod(webSocketEndpoint).get();
    } else {
        return true;
    }
    validateReturnType(method);
    for (Parameter parameter: method.getParameters()) {
        Class<?> paraType = parameter.getType();
        if (paraType == String.class) {
            if (parameter.getAnnotation(PathParam.class) == null) {
                throw new WebSocketMethodParameterException("Invalid parameter found on open message method: " +
                                                                    "string parameter without " +
                                                                    "@PathParam annotation.");
            }
        } else if (paraType != Session.class) {
            throw new WebSocketMethodParameterException("Invalid parameter found on open message method: " +
                                                                paraType);
        }
    }
    return true;
}
项目:msf4j    文件:EndpointValidator.java   
private boolean validateOnCloseMethod(Object webSocketEndpoint)
        throws WebSocketMethodParameterException, WebSocketEndpointMethodReturnTypeException {
    EndpointDispatcher dispatcher = new EndpointDispatcher();
    Method method;
    if (dispatcher.getOnCloseMethod(webSocketEndpoint).isPresent()) {
        method = dispatcher.getOnCloseMethod(webSocketEndpoint).get();
    } else {
        return true;
    }
    validateReturnType(method);
    for (Parameter parameter: method.getParameters()) {
        Class<?> paraType = parameter.getType();
        if (paraType == String.class) {
            if (parameter.getAnnotation(PathParam.class) == null) {
                throw new WebSocketMethodParameterException("Invalid parameter found on close message method: " +
                                                                    "string parameter without " +
                                                                    "@PathParam annotation.");
            }
        } else if (paraType != CloseReason.class && paraType != Session.class) {
            throw new WebSocketMethodParameterException("Invalid parameter found on close message method: " +
                                                                paraType);
        }
    }
    return true;
}
项目:msf4j    文件:EndpointDispatcher.java   
/**
 * Extract OnMessage method for String from the endpoint if exists.
 *
 * @param webSocketEndpoint Endpoint to extract method.
 * @return method optional to handle String messages.
 */
public Optional<Method> getOnStringMessageMethod(Object webSocketEndpoint) {
    Method[] methods = webSocketEndpoint.getClass().getMethods();
    Method returnMethod = null;
    for (Method method : methods) {
        if (method.isAnnotationPresent(OnMessage.class)) {
            Parameter[] parameters = method.getParameters();
            for (Parameter parameter: parameters) {
                if (!parameter.isAnnotationPresent(PathParam.class) &&
                        parameter.getType() == String.class) {
                    returnMethod = method;
                }

            }
        }
    }
    return Optional.ofNullable(returnMethod);
}
项目:msf4j    文件:MSF4JWSConnectorListener.java   
private void handleError(Throwable throwable, PatternPathRouter.RoutableDestination<Object> routableEndpoint,
                         Session session) {
    Object webSocketEndpoint = routableEndpoint.getDestination();
    Map<String, String> paramValues = routableEndpoint.getGroupNameValues();
    Optional<Method> methodOptional = new EndpointDispatcher().getOnErrorMethod(webSocketEndpoint);
    methodOptional.ifPresent(method -> {
        List<Object> parameterList = new LinkedList<>();
        Arrays.stream(method.getParameters()).forEach(parameter -> {
            if (parameter.getType() == Throwable.class) {
                parameterList.add(throwable);
            } else if (parameter.getType() == Session.class) {
                parameterList.add(session);
            } else if (parameter.getType() == String.class) {
                PathParam pathParam = parameter.getAnnotation(PathParam.class);
                if (pathParam != null) {
                    parameterList.add(paramValues.get(pathParam.value()));
                }
            } else {
                parameterList.add(null);
            }
        });
        executeMethod(method, webSocketEndpoint, parameterList, session);
    });
}
项目:gameon-mediator    文件:MediatorEndpoint.java   
/**
 * Message is received from the JS client
 *
 * @param message
 * @param session
 * @throws IOException
 */
@OnMessage
public void onMessage(@PathParam("userId") String userId, RoutedMessage message, Session session)
        throws IOException {
    Log.log(Level.FINEST, this, "C -> M    R : {0}", message);

    try {
        if (message.getFlowTarget() == FlowTarget.ready) {
            // wait to process the ready message until we've validated the JWT (see onOpen)
            mediatorCheck.await();

            clientMediator.ready(message);
            goodToGo = true; // eventually all threads will see that we're happy
        } else if (goodToGo || mediatorCheck.getCount() == 0) {
            // we will eventually see the goodToGo check, which will bypass having to look @ the latch
            clientMediator.handleMessage(message);
        } else {
            Log.log(Level.FINEST, session, "no session, dropping message from client {0}: {1}", userId, message);
            return;
        }
    } catch (Exception e) {
        Log.log(Level.WARNING, session, "Uncaught exception handling room-bound message", e);
    }
}
项目:JavaWsPubSub    文件:SubscribeEndpoint.java   
@OnMessage
public void handleSubscribeMessage(Session session, String msg,  @PathParam("topic") String topic) {
    {
        if (session.isOpen()) {
            if(topic!=null && !topic.trim().isEmpty()){
            System.out.println("We have a clinet for: " + topic);
            PublicationsManager.getInstance().onSubscribe(session,topic.trim());
          }
            else{
                try {
        session.getBasicRemote().sendText("Please use a valid topic name to subscribe");
    } catch (IOException e) {
        //Ignore topic was null anyways cannot do much about this client
    }
            }
        }
    } 
}
项目:upns    文件:MultiplexEndpoint.java   
@OnMessage
public void onMessage(String message, Session session, @PathParam("user") String user) {
    switch (session.getNegotiatedSubprotocol()) {
        case "text":
            getTextMessageHandler().onMessage(message, session, user);
            break;
        case "json":
            try {
                getJsonMessageHandler().onMessage(JacksonSupport.objectMapper.readTree(message), session, user);
            } catch (Exception e) {
                logger.error("process message:[{}] due to error:[{}]", message, ExceptionUtils.getStackTrace(e));
            }
            break;
        case "echo":
            session.getAsyncRemote().sendText(String.format("reply from server:[%s]", message));
            break;
    }
}
项目:javaee7-websocket    文件:MatchEndpoint.java   
@OnMessage
public void message(final Session session, BetMessage msg,  @PathParam("match-id") String matchId) {
    logger.log(Level.INFO, "Received: Bet Match Winner - {0}", msg.getWinner());
    //check if the user had already bet and save this bet
    boolean hasAlreadyBet = session.getUserProperties().containsKey("bet");
    session.getUserProperties().put("bet", msg.getWinner());

    //Send betMsg with bet count
    if (!nbBetsByMatch.containsKey(matchId)){
        nbBetsByMatch.put(matchId, new AtomicInteger());
    }
    if (!hasAlreadyBet){
        nbBetsByMatch.get(matchId).incrementAndGet();
    }
    sendBetMessages(null, matchId, false);
}
项目:cerberus-source    文件:TestCaseExecutionEndPoint.java   
/**
 * Callback when receiving opened connection from client side
 *
 * @param session     the client {@link Session}
 * @param config      the associated {@link EndpointConfig} to the new connection
 * @param executionId the execution identifier from the {@link ServerEndpoint} path
 */
@OnOpen
public void openConnection(Session session, EndpointConfig config, @PathParam("execution-id") long executionId) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Session " + session.getId() + " opened connection to execution " + executionId);
    }
    mainLock.lock();
    try {
        sessions.put(session.getId(), session);
        Set<String> registeredSessions = executions.get(executionId);
        if (registeredSessions == null) {
            registeredSessions = new HashSet<>();
        }
        registeredSessions.add(session.getId());
        executions.put(executionId, registeredSessions);
    } finally {
        mainLock.unlock();
    }
}
项目:cerberus-source    文件:TestCaseExecutionEndPoint.java   
/**
 * Callback when receiving closed connection from client side
 *
 * @param session     the client {@link Session}
 * @param executionId the execution identifier from the {@link ServerEndpoint} path
 */
@OnClose
public void closedConnection(Session session, @PathParam("execution-id") long executionId) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Session " + session.getId() + " closed connection to execution " + executionId);
    }
    mainLock.lock();
    try {
        sessions.remove(session.getId());
        Set<String> registeredSessions = executions.get(executionId);
        if (registeredSessions != null) {
            registeredSessions.remove(session.getId());
        }
    } finally {
        mainLock.unlock();
    }
}
项目:docker-restful-java    文件:ChannelEndPoint.java   
@OnOpen
public void onOpen(Session session, EndpointConfig config, @PathParam("id") Long id, @PathParam("nickname") String nickname) throws IOException {
    LOGGER.info("onOpen " + id + ": " + session.toString());
    manager.add(session, id);

    Message message = new Message.Builder()
            .setContent("Welcom " + nickname + "!")
            .setNickname(nickname)
            .build();

    manager.broadcast(id, message, From.Type.SERVER);
}
项目:docker-restful-java    文件:ChannelEndPoint.java   
@OnClose
public void onClose(Session session, CloseReason reason, @PathParam("id") Long id, @PathParam("nickname") String nickname) throws IOException {
    //prepare the endpoint for closing.
    LOGGER.info("onClose: " + session.toString());
    manager.remove(session, id);
    Message json = new Message.Builder()
            .setContent("Bye bye " + nickname + "...")
            .setNickname(nickname)
            .build();

    manager.broadcast(id, json, From.Type.SERVER);
}
项目:cloud-language-servers-container    文件:LanguageServerWSEndPoint.java   
@OnMessage
public void onMessage(@PathParam("ws") String ws, @PathParam("lang") String lang, String message, Session session) {
    if ( message.length() == 0 ) return; // This is just ping!
    IdleTimeHolder.getInstance().registerUserActivity();
    LOG.info("LSP: onMessage is invoked: \n" + message);
    LOG.info(String.format("LSP: get Head Process for wsKey %s lang %s session %s", ws, lang, session.getId()));
    LSPProcess lspProc = procManager.getProcess(LSPProcessManager.processKey(ws, lang));
    lspProc.enqueueCall(message);
}
项目:cloud-language-servers-container    文件:LanguageServerWSEndPoint.java   
@OnClose
public void onClose(@PathParam("ws") String ws, @PathParam("lang") String lang, Session session, CloseReason reason ) {
    Map<String,List<String>> reqParam = session.getRequestParameterMap();
    if ( reqParam != null && reqParam.containsKey("local") ) {
        return;
    }
    LOG.info("LSP: OnClose is invoked");
       LSPProcess process = procManager.getProcess(LSPProcessManager.processKey(ws, lang));
       if (process != null) {
           registerWSSyncListener(LSPProcessManager.processKey(process.getProjPath(), lang), "/" + ws + "/" + lang, false);
           procManager.cleanProcess(ws, lang, session.getId());
       }
}
项目:etomica    文件:ConfigurationWebsocket.java   
@OnOpen
public void onOpen(final Session session, @PathParam("id") String id) {
    session.setMaxIdleTimeout(0);

    SimulationModel model = simStore.get(UUID.fromString(id));
    Simulation sim = model.getSimulation();
    SimulationWrapper wrapper = (SimulationWrapper) model.getWrapper(sim);

    Runnable sendConfigurationUpdate = () -> {
        if(sim.getController().isPaused() || !sim.getController().isActive()) {
            return;
        }


        sim.getController().doActionNow(() -> {
            Boundary[] boundaries = new Boundary[sim.getBoxCount()];
            for (int i = 0; i < sim.getBoxCount(); i++) {
                boundaries[i] = sim.getBox(i).getBoundary();
            }

            ConfigurationUpdate update = new ConfigurationUpdate(
                    wrapper.getAllCoordinates(),
                    boundaries
            );
            session.getAsyncRemote().sendObject(update);
        });

    };

    ScheduledFuture<?> task = executor.scheduleWithFixedDelay(sendConfigurationUpdate, 0, 33, TimeUnit.MILLISECONDS);
    session.getUserProperties().put("task", task);
}
项目:etomica    文件:DataStreamWebsocket.java   
@OnOpen
    public void onOpen(final Session session, @PathParam("simId") String simId, @PathParam("dataId") String dataId) {
        session.setMaxIdleTimeout(0);

        session.getUserProperties().put("mapper", mapper);
        SimulationModel model = simStore.get(UUID.fromString(simId));
        Simulation sim = model.getSimulation();
        DataStreamStore.DataPlumbing dataPlumbing = dataStore.get(UUID.fromString(dataId));
        DataDump dump = dataPlumbing.getDump();
        final DataAndInfo dataAndInfo = new DataAndInfo();

        Runnable sendData = () -> {
            if(sim.getController().isPaused() || !sim.getController().isActive()) {
                return;
            }

            sim.getController().doActionNow(() -> {
                IData data = dump.getData();
                dataAndInfo.setData(dump.getData());
                dataAndInfo.setDataInfo(dump.getDataInfo());
                if(data != null) {
                    session.getAsyncRemote().sendObject(dataAndInfo);
                }
            });
        };

        ScheduledFuture<?> task = executor.scheduleWithFixedDelay(sendData, 0, 333, TimeUnit.MILLISECONDS);
        session.getUserProperties().put("task", task);
        // add on construction
//        model.getSimulation().getIntegrator().getEventManager().addListener(dataPlumbing.getPump());
    }
项目:maintain-robot    文件:WebSocketModule.java   
@OnOpen
public void open(Session session, @PathParam(value = "user")String user) {
    Session session1 = sessionMap.get(user);
    if (null != session1) {
        try {
            session1.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    sessionMap.put(user, session);
    log.info("*** WebSocket opened from sessionId " + session.getId());
}
项目:websocket-http-session    文件:Service.java   
@OnOpen
public void opened(@PathParam("user") String user, Session session, EndpointConfig config) throws IOException{
    System.out.println("opened() Current thread "+ Thread.currentThread().getName());
    this.httpSession = (HttpSession) config.getUserProperties().get(user);
    System.out.println("User joined "+ user + " with http session id "+ httpSession.getId());
    String response = "User " + user + " | WebSocket session ID "+ session.getId() +" | HTTP session ID " + httpSession.getId();
    System.out.println(response);
    session.getBasicRemote().sendText(response);
}
项目:snoopee    文件:SnoopEEStatusEndpoint.java   
/**
 * Heartbeat endpoint.
 * Registers that the client is still there and updates configuration
 * if changed.
 * 
 * @param clientId The client id
 * @param applicationConfig The updated configuration
 */
@OnMessage
public void onMessage(@PathParam("clientId") String clientId, String applicationConfig) {

   LOGGER.config(() -> "Client: " + clientId + ", status: " + applicationConfig);

   if (applicationConfig != null && !applicationConfig.isEmpty()) {
      clients.register(fromJSON(applicationConfig));
   } else {
      clients.deRegister(clientId);
   }
}
项目:JavaWeb    文件:ChartController.java   
@OnMessage
public void onMessage(String message, Session session,@PathParam("username") String username) {
    try{
        JSONObject jo = new JSONObject();
        JSONObject inner = new JSONObject();
        inner.put("message", message);
        inner.put("username", username);
        jo.put("onlineMessage", inner);
        for (Session c : client) {
            c.getBasicRemote().sendText(jo.toString());
        }
    }catch(Exception e){
        //do nothing
    }
}
项目:JavaWeb    文件:ChartController.java   
@OnClose
public void onClose(Session session,@PathParam("username") String username) {
    try{
        client.remove(session);
        user.remove(URLEncoder.encode(username, "UTF-8"));
        session.close();
    }catch(Exception e){
        //do nothing
    }
}
项目:SensorPanel    文件:SensorNotifications.java   
@OnOpen
public void onOpen(Session session, @PathParam("sensor") String sensor) {
  if ("ALL".equals(sensor)) {
    sensor = null;
  }
  send(sensor, session);
  sessions.add(sensor, session);
}
项目:editor-backend    文件:RealtimeEndpoint.java   
@OnOpen
public void openConnection(Session session,
                           @PathParam("projectId") String adocId) {
    logger.log(Level.INFO, "Session ID : " + session.getId()
            + " - Connection opened for doc : " + adocId);
    session.getUserProperties().put(adocId, true);
    peers.add(session);
    // send a message to all peers to inform that someone is connected
    handleReaders(adocId, true);
    if (!writersByAdoc.containsKey(adocId)) {
        writersByAdoc.put(adocId, new HashSet<String>());
    }

    sendNotificationMessage(createNotification(adocId), adocId);
}
项目:snoop    文件:SnoopStatusEndpoint.java   
/**
 * Heartbeat endpoint.
 * Registers that the client is still there and updates configuration
 * if changed.
 * 
 * @param clientId The client id
 * @param applicationConfig The updated configuration
 */
@OnMessage
public void onMessage(@PathParam("clientId") String clientId, String applicationConfig) {

   LOGGER.config(() -> "Client: " + clientId + ", status: " + applicationConfig);

   if (applicationConfig != null && !applicationConfig.isEmpty()) {
      clients.register(fromJSON(applicationConfig));
   } else {
      clients.deRegister(clientId);
   }
}
项目:docker4dev-tennistour-app    文件:MatchEndpoint.java   
@OnOpen
public void openConnection(Session session, @PathParam("match-id") String matchId) {
    logger.log(Level.INFO, "Session ID : " + session.getId() +" - Connection opened for match : " + matchId);
    session.getUserProperties().put(matchId, true);
    peers.add(session);

    //Send live result for this match
    try {
        send(new MatchMessage(ejbService.getMatchFromCache(new Long(matchId))), matchId);
    } catch (Exception e){
        logger.severe("Error to get match from cache." + e.getCause());
    }
}
项目:docker4dev-tennistour-app    文件:MatchEndpoint.java   
@OnClose
public void closedConnection(Session session, @PathParam("match-id") String matchId) {
    if (session.getUserProperties().containsKey("bet")){
        /* Remove bet */
         nbBetsByMatch.get(matchId).decrementAndGet();
         sendBetMessages(null, matchId, false);
    }
    /* Remove this connection from the queue */
    peers.remove(session);
    logger.log(Level.INFO, "Connection closed.");
}
项目:hopsworks    文件:NotebookServer.java   
@OnOpen
public void open(Session conn, EndpointConfig config, @PathParam("projectID") String projectId) throws AppException {
  try {
    this.session = conn;
    this.sender = (String) config.getUserProperties().get("user");
    this.project = getProject(projectId);
    authenticateUser(conn, this.project, this.sender);
    if (this.userRole == null) {
      LOG.log(Level.INFO, "User not authorized for Zeppelin Access: {0}", this.sender);
      return;
    }
    if (project.getPaymentType().equals(PaymentType.PREPAID)) {
      YarnProjectsQuota projectQuota = yarnProjectsQuotaFacade.findByProjectName(project.getName());
      if (projectQuota == null || projectQuota.getQuotaRemaining() < 0) {
        session.close(new CloseReason(CloseReason.CloseCodes.NORMAL_CLOSURE, "This project is out of credits."));
        return;
      }
    }
    this.impl = notebookServerImplFactory.getNotebookServerImps(project.getName(), conn);
    if (impl.getConf() == null) {
      impl.removeConnectedSockets(conn, notebookServerImplFactory);
      LOG.log(Level.INFO, "Could not create Zeppelin config for user: {0}, project: {1}", new Object[]{this.sender,
        project.getName()});
      return;
    }
    addUserConnection(this.hdfsUsername, conn);
    addUserConnection(project.getProjectGenericUser(), conn);
    this.session.getUserProperties().put("projectID", this.project.getId());
    String httpHeader = (String) config.getUserProperties().get(WatcherSecurityKey.HTTP_HEADER);
    this.session.getUserProperties().put(WatcherSecurityKey.HTTP_HEADER, httpHeader);
    impl.unicast(new Message(OP.CREATED_SOCKET), conn);
  } catch (IOException | RepositoryException | TaskRunnerException ex) {
    throw new AppException(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), ex.getMessage());
  }
}
项目:actionbazaar    文件:BulletinService.java   
/**
 * Invoked when a client connects to the server
 * @param session 
 * @param clientType - type of the client
 */
@OnOpen
public void onOpen(Session session, EndpointConfig endConfig, @PathParam("clientType") String clientType) {
    logger.log(Level.INFO,"Connection has been established.");
    consumer = context.createConsumer(topic);
    consumer.setMessageListener(null);
    producer = context.createProducer();
    producer.send(topic,"Hello World!");

}