Java 类javax.websocket.Session 实例源码

项目:tomcat7    文件:TestWsRemoteEndpointImplServer.java   
@Test
public void testClientDropsConnection() throws Exception {
    Tomcat tomcat = getTomcatInstance();
    // No file system docBase required
    Context ctx = tomcat.addContext("", null);
    ctx.addApplicationListener(Bug58624Config.class.getName());
    Tomcat.addServlet(ctx, "default", new DefaultServlet());
    ctx.addServletMapping("/", "default");

    WebSocketContainer wsContainer =
            ContainerProvider.getWebSocketContainer();

    tomcat.start();

    SimpleClient client = new SimpleClient();
    URI uri = new URI("ws://localhost:" + getPort() + Bug58624Config.PATH);

    Session session = wsContainer.connectToServer(client, uri);
    // Break point A required on following line
    session.close();
}
项目:scalable-websocket-chat-with-hazelcast    文件:ChatServer.java   
@OnMessage
public void msgReceived(ChatMessage msg, Session s) {
    msg.from(user);
    if (msg.getMsg().equals(LOGOUT_MSG)) {
        try {
            s.close();
            return;
        } catch (IOException ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    ChatEventBus.getInstance().publishChat(msg);
    System.out.println("Chat Message placed on HZ Topic " + CHAT_TOPIC_NAME);

}
项目:apache-tomcat-7.0.73-with-comment    文件:DrawboardEndpoint.java   
@Override
public void onClose(Session session, CloseReason closeReason) {
    Room room = getRoom(false);
    if (room != null) {
        room.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                try {
                    // Player can be null if it couldn't enter the room
                    if (player != null) {
                        // Remove this player from the room.
                        player.removeFromRoom();

                        // Set player to null to prevent NPEs when onMessage events
                        // are processed (from other threads) after onClose has been
                        // called from different thread which closed the Websocket session.
                        player = null;
                    }
                } catch (RuntimeException ex) {
                    log.error("Unexpected exception: " + ex.toString(), ex);
                }
            }
        });
    }
}
项目:Hydrograph    文件:HydrographUiClientSocket.java   
/**
 * 
 * Called by web socket server, message contain execution tracking status that updated on job canvas.
 *
 * @param message the message
 * @param session the session
 */
@OnMessage
public void updateJobTrackingStatus(String message, Session session) { 

    final String status = message; 
    Display.getDefault().asyncExec(new Runnable() {
        public void run() {
            Gson gson = new Gson();
            ExecutionStatus executionStatus=gson.fromJson(status, ExecutionStatus.class);
            IWorkbenchPage page = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getActivePage();
            IEditorReference[] refs = page.getEditorReferences();
            for (IEditorReference ref : refs){
                IEditorPart editor = ref.getEditor(false);
                if(editor instanceof ELTGraphicalEditor){
                    ELTGraphicalEditor editPart=(ELTGraphicalEditor)editor;
                    if(editPart.getJobId().equals(executionStatus.getJobId()) || (((editPart.getContainer()!=null) && 
                            (editPart.getContainer().getUniqueJobId().equals(executionStatus.getJobId()))) && editPart.getContainer().isOpenedForTracking() )){
                            TrackingStatusUpdateUtils.INSTANCE.updateEditorWithCompStatus(executionStatus, (ELTGraphicalEditor)editor,false);
                    }
                }
            }
        }
    });
}
项目:apache-tomcat-7.0.73-with-comment    文件:DrawboardEndpoint.java   
@Override
public void onClose(Session session, CloseReason closeReason) {
    Room room = getRoom(false);
    if (room != null) {
        room.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                try {
                    // Player can be null if it couldn't enter the room
                    if (player != null) {
                        // Remove this player from the room.
                        player.removeFromRoom();

                        // Set player to null to prevent NPEs when onMessage events
                        // are processed (from other threads) after onClose has been
                        // called from different thread which closed the Websocket session.
                        player = null;
                    }
                } catch (RuntimeException ex) {
                    log.error("Unexpected exception: " + ex.toString(), ex);
                }
            }
        });
    }
}
项目:lazycat    文件:PojoMethodMapping.java   
private static Object[] buildArgs(PojoPathParam[] pathParams, Map<String, String> pathParameters, Session session,
        EndpointConfig config, Throwable throwable, CloseReason closeReason) throws DecodeException {
    Object[] result = new Object[pathParams.length];
    for (int i = 0; i < pathParams.length; i++) {
        Class<?> type = pathParams[i].getType();
        if (type.equals(Session.class)) {
            result[i] = session;
        } else if (type.equals(EndpointConfig.class)) {
            result[i] = config;
        } else if (type.equals(Throwable.class)) {
            result[i] = throwable;
        } else if (type.equals(CloseReason.class)) {
            result[i] = closeReason;
        } else {
            String name = pathParams[i].getName();
            String value = pathParameters.get(name);
            try {
                result[i] = Util.coerceToType(type, value);
            } catch (Exception e) {
                throw new DecodeException(value, sm.getString("pojoMethodMapping.decodePathParamFail", value, type),
                        e);
            }
        }
    }
    return result;
}
项目:belling-admin    文件:OnlineNoticeServer.java   
/**
 * 连接建立成功调用的方法-与前端JS代码对应
 * 
 * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
 */
@OnOpen
public void onOpen(Session session, EndpointConfig config) {
    // 单个会话对象保存
    this.session = session;
    webSocketSet.add(this); // 加入set中
    this.httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
    String uId = (String) httpSession.getAttribute("userid"); // 获取当前用户
    String sessionId = httpSession.getId();
    this.userid = uId + "|" + sessionId;
    if (!OnlineUserlist.contains(this.userid)) {
        OnlineUserlist.add(userid); // 将用户名加入在线列表
    }
    routetabMap.put(userid, session); // 将用户名和session绑定到路由表
    System.out.println(userid + " -> 已上线");
    String message = getMessage(userid + " -> 已上线", "notice", OnlineUserlist);
    broadcast(message); // 广播
}
项目:lams    文件:KumaliveWebsocketServer.java   
@OnClose
   public void unregisterUser(Session websocket, CloseReason reason) throws JSONException, IOException {
String login = websocket.getUserPrincipal().getName();
if (login == null) {
    return;
}

Integer organisationId = Integer
    .valueOf(websocket.getRequestParameterMap().get(AttributeNames.PARAM_ORGANISATION_ID).get(0));
KumaliveDTO kumalive = kumalives.get(organisationId);
if (kumalive == null) {
    return;
}
KumaliveUser user = kumalive.learners.remove(login);
if (user != null) {
    Integer userId = user.userDTO.getUserID();
    if (kumalive.raisedHand != null) {
    kumalive.raisedHand.remove(userId);
    }
    if (userId.equals(kumalive.speaker)) {
    kumalive.speaker = null;
    }
}

sendRefresh(kumalive);
   }
项目:BasicsProject    文件:WSMI.java   
/**连接建立成功调用的方法*/
@OnOpen
public void onOpen(Session session,EndpointConfig config){
    HttpSession httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
    if(StorageUtil.init(httpSession).getLoginMemberId()!=ReturnUtil.NOT_LOGIN_CODE){
        long userId = StorageUtil.init(httpSession).getLoginMemberId();
        mapUS.put(userId,session);
        mapSU.put(session,userId);
        //上线通知由客户端自主发起
        onlineCount++;           //在线数加1
        System.out.println("用户"+userId+"进入WebSocket!当前在线人数为" + onlineCount);
        getUserKey(userId);
    }else{
        try {
            session.close();
            System.out.println("未获取到用户信息,关闭WebSocket!");
        } catch (IOException e) {
            System.out.println("关闭WebSocket失败!");
        }
    }
}
项目:lams    文件:CommandWebsocketServer.java   
/**
    * Removes Learner websocket from the collection.
    */
   @OnClose
   public void unregisterUser(Session session, CloseReason reason) {
String login = session.getUserPrincipal().getName();
if (login == null) {
    return;
}

Long lessonId = Long.valueOf(session.getRequestParameterMap().get(AttributeNames.PARAM_LESSON_ID).get(0));
Map<String, Session> lessonWebsockets = CommandWebsocketServer.websockets.get(lessonId);
if (lessonWebsockets == null) {
    return;
}

lessonWebsockets.remove(login);
   }
项目:lams    文件:KumaliveWebsocketServer.java   
/**
    * Tell learners that the teacher finished a question
    */
   private void downHandPrompt(JSONObject requestJSON, Session websocket) throws IOException, JSONException {
Integer organisationId = Integer
    .valueOf(websocket.getRequestParameterMap().get(AttributeNames.PARAM_ORGANISATION_ID).get(0));
KumaliveDTO kumalive = kumalives.get(organisationId);

User user = getUser(websocket);
Integer userId = user.getUserId();

if (!KumaliveWebsocketServer.getSecurityService().hasOrgRole(organisationId, userId,
    new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive down hand prompt", false)) {
    String warning = "User " + userId + " is not a monitor of organisation " + organisationId;
    logger.warn(warning);
    return;
}

kumalive.raiseHandPrompt = false;
kumalive.raisedHand.clear();
if (logger.isDebugEnabled()) {
    logger.debug("Teacher " + userId + " finished a question in Kumalive " + kumalive.id);
}

sendRefresh(kumalive);
   }
项目:redis-websocket-javaee    文件:MeetupGroupsLiveLeaderboardEndpoint.java   
public void broadcast(@Observes @LeaderDataQualifier String leaderboard) {
    for (final Session s : CLIENTS) {
        if (s != null && s.isOpen()) {
            /**
             * Asynchronous push
             */
            s.getAsyncRemote().sendText(leaderboard, new SendHandler() {
                @Override
                public void onResult(SendResult result) {
                    if (result.isOK()) {
                        //Logger.getLogger(MeetupGroupsLiveLeaderboardEndpoint.class.getName()).log(Level.INFO, " sent to client {0}", s.getId());
                    } else {
                        Logger.getLogger(MeetupGroupsLiveLeaderboardEndpoint.class.getName()).log(Level.SEVERE, "Could not send to client " + s.getId(),
                                result.getException());
                    }
                }
            });
        }

    }

}
项目:Hydrograph    文件:TrackingDisplayUtils.java   
/**
 * 
 * Close websocket client connection.
 * @param session
 */
public void closeWebSocketConnection(Session session){
    try {
        Thread.sleep(DELAY);
    } catch (InterruptedException e1) {
    }
    if (session != null  && session.isOpen()) {
        try {
            CloseReason closeReason = new CloseReason(CloseCodes.NORMAL_CLOSURE,"Closed");
            session.close(closeReason);
            logger.info("Session closed");
        } catch (IOException e) {
            logger.error("Fail to close connection ",e);
        }

    }

}
项目:apache-tomcat-7.0.73-with-comment    文件:TestWsRemoteEndpointImplServer.java   
@Test
public void testClientDropsConnection() throws Exception {
    Tomcat tomcat = getTomcatInstance();
    // No file system docBase required
    Context ctx = tomcat.addContext("", null);
    ctx.addApplicationListener(Bug58624Config.class.getName());
    Tomcat.addServlet(ctx, "default", new DefaultServlet());
    ctx.addServletMapping("/", "default");

    WebSocketContainer wsContainer =
            ContainerProvider.getWebSocketContainer();

    tomcat.start();

    SimpleClient client = new SimpleClient();
    URI uri = new URI("ws://localhost:" + getPort() + Bug58624Config.PATH);

    Session session = wsContainer.connectToServer(client, uri);
    // Break point A required on following line
    session.close();
}
项目:tomcat7    文件:PojoEndpointBase.java   
@Override
public final void onError(Session session, Throwable throwable) {

    if (methodMapping.getOnError() == null) {
        log.error(sm.getString("pojoEndpointBase.onError",
                pojo.getClass().getName()), throwable);
    } else {
        try {
            methodMapping.getOnError().invoke(
                    pojo,
                    methodMapping.getOnErrorArgs(pathParameters, session,
                            throwable));
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            log.error(sm.getString("pojoEndpointBase.onErrorFail",
                    pojo.getClass().getName()), t);
        }
    }
}
项目:lams    文件:LearningWebsocketServer.java   
/**
    * When user leaves the activity.
    */
   @OnClose
   public void unregisterUser(Session websocket, CloseReason reason) {
Long toolContentID = Long
    .valueOf(websocket.getRequestParameterMap().get(AttributeNames.PARAM_TOOL_CONTENT_ID).get(0));
websockets.get(toolContentID).remove(websocket);

if (log.isDebugEnabled()) {
    // If there was something wrong with the connection, put it into logs.
    log.debug("User " + websocket.getUserPrincipal().getName() + " left Dokumaran with Tool Content ID: "
        + toolContentID
        + (!(reason.getCloseCode().equals(CloseCodes.GOING_AWAY)
            || reason.getCloseCode().equals(CloseCodes.NORMAL_CLOSURE))
                ? ". Abnormal close. Code: " + reason.getCloseCode() + ". Reason: "
                    + reason.getReasonPhrase()
                : ""));
}
   }
项目:tap17-muggl-javaee    文件:StatusEndpoint.java   
public static synchronized void updateStatus2(Student student) {
    log.info("updateStatus2");
    for (Session s : sessions) {
        if (s.isOpen()) {
            try {
                String studentUpdate = jsonStudentUpdate(student);
                s.getBasicRemote().sendText(studentUpdate);
                log.log(Level.INFO, "[StatusEndpoint] {0} is now {1}", 
                        new Object[]{student.getName(), 
                            student.getStatus()});
                /* Send update */
            } catch (IOException e) {
                log.log(Level.INFO, "[StatusEndpoint] {0}", e.getMessage());
            }
        }
    }
}
项目:lams    文件:LearningWebsocketServer.java   
/**
    * Registeres the Learner for processing.
    */
   @OnOpen
   public void registerUser(Session websocket) throws JSONException, IOException {
Long toolSessionId = Long
    .valueOf(websocket.getRequestParameterMap().get(AttributeNames.PARAM_TOOL_SESSION_ID).get(0));
Set<Session> sessionWebsockets = websockets.get(toolSessionId);
if (sessionWebsockets == null) {
    sessionWebsockets = ConcurrentHashMap.newKeySet();
    websockets.put(toolSessionId, sessionWebsockets);
}
sessionWebsockets.add(websocket);

if (log.isDebugEnabled()) {
    log.debug("User " + websocket.getUserPrincipal().getName()
        + " entered Leader Selection with toolSessionId: " + toolSessionId);
}
   }
项目:SPLGroundControl    文件:WSEndpoint.java   
@OnClose
public void onClose(Session session) throws InterruptedException {
    ClientSession clientSession = sessions.get(session.getId());

    if (clientSession != null) {
        clientSession.onClose();
        sessions.remove(session.getId());
    }

    System.out.printf("webSocket %s session closed.", session.getId());
}
项目:minijax    文件:HelloWebSocketTest.java   
@Test
public void testWebSocket() throws IOException {
    final EchoEndpoint endpoint = new EchoEndpoint();
    final Session session = getSession();
    endpoint.onOpen(session);
    assertEquals("hello", endpoint.onMessage("hello", session));
    endpoint.onClose(session);
}
项目:sepatools    文件:WebsocketClientEndpoint.java   
@Override
public void onOpen(Session session, EndpointConfig config) {
    logger.debug("@onOpen");

    wsClientSession = session;
    wsClientSession.addMessageHandler(this);    

    sendSubscribeRequest();
}
项目:minijax    文件:HelloWebSocketTest.java   
private Session getSession() {
    final Basic basicRemote = mock(Basic.class);

    final Session session = mock(Session.class);
    when(session.getBasicRemote()).thenReturn(basicRemote);
    return session;
}
项目:apache-tomcat-7.0.73-with-comment    文件:WsWebSocketContainer.java   
Set<Session> getOpenSessions(Endpoint endpoint) {
    HashSet<Session> result = new HashSet<Session>();
    synchronized (endPointSessionMapLock) {
        Set<WsSession> sessions = endpointSessionMap.get(endpoint);
        if (sessions != null) {
            result.addAll(sessions);
        }
    }
    return result;
}
项目:lams    文件:KumaliveWebsocketServer.java   
/**
    * Save score for a learner
    */
   private void score(JSONObject requestJSON, Session websocket) throws IOException, JSONException {
Integer organisationId = Integer
    .valueOf(websocket.getRequestParameterMap().get(AttributeNames.PARAM_ORGANISATION_ID).get(0));

User user = getUser(websocket);
Integer userId = user.getUserId();

if (!KumaliveWebsocketServer.getSecurityService().hasOrgRole(organisationId, userId,
    new String[] { Role.GROUP_MANAGER, Role.MONITOR }, "kumalive score", false)) {
    String warning = "User " + userId + " is not a monitor of organisation " + organisationId;
    logger.warn(warning);
    return;
}
Long rubricId = requestJSON.getLong("rubricId");
Integer learnerId = requestJSON.getInt(AttributeNames.PARAM_USER_ID);
KumaliveWebsocketServer.getKumaliveService().scoreKumalive(rubricId, learnerId,
    Long.valueOf(requestJSON.getString("batch")), Short.valueOf(requestJSON.getString("score")));

KumaliveDTO kumalive = kumalives.get(organisationId);
if (logger.isDebugEnabled()) {
    logger.debug("Teacher " + userId + " marked rubric " + rubricId + " for learner " + learnerId
        + " in Kumalive " + kumalive.id);
}

sendRefresh(kumalive);
   }
项目:apache-tomcat-7.0.73-with-comment    文件:TesterEchoServer.java   
@OnMessage
public void echoTextMessage(Session session, String msg, boolean last) {
    try {
        session.getBasicRemote().sendText(msg, last);
    } catch (IOException e) {
        try {
            session.close();
        } catch (IOException e1) {
            // Ignore
        }
    }
}
项目:tomcat7    文件:TestWsWebSocketContainer.java   
private void doTestPerMessageDefalteClient(String msg, int count) throws Exception {
    Tomcat tomcat = getTomcatInstance();
    // Must have a real docBase - just use temp
    Context ctx =
        tomcat.addContext("", System.getProperty("java.io.tmpdir"));
    ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
    Tomcat.addServlet(ctx, "default", new DefaultServlet());
    ctx.addServletMapping("/", "default");

    tomcat.start();

    Extension perMessageDeflate = new WsExtension(PerMessageDeflate.NAME);
    List<Extension> extensions = new ArrayList<Extension>(1);
    extensions.add(perMessageDeflate);

    ClientEndpointConfig clientConfig =
            ClientEndpointConfig.Builder.create().extensions(extensions).build();

    WebSocketContainer wsContainer =
            ContainerProvider.getWebSocketContainer();
    Session wsSession = wsContainer.connectToServer(
            TesterProgrammaticEndpoint.class,
            clientConfig,
            new URI("ws://" + getHostName() + ":" + getPort() +
                    TesterEchoServer.Config.PATH_ASYNC));
    CountDownLatch latch = new CountDownLatch(count);
    BasicText handler = new BasicText(latch, msg);
    wsSession.addMessageHandler(handler);
    for (int i = 0; i < count; i++) {
        wsSession.getBasicRemote().sendText(msg);
    }

    boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);

    Assert.assertTrue(latchResult);

    ((WsWebSocketContainer) wsContainer).destroy();
}
项目:apache-tomcat-7.0.73-with-comment    文件:EchoAnnotation.java   
@OnMessage
public void echoBinaryMessage(Session session, ByteBuffer bb,
        boolean last) {
    try {
        if (session.isOpen()) {
            session.getBasicRemote().sendBinary(bb, last);
        }
    } catch (IOException e) {
        try {
            session.close();
        } catch (IOException e1) {
            // Ignore
        }
    }
}
项目:tomcat7    文件:TesterEchoServer.java   
@OnMessage(maxMessageSize = MAX_SIZE)
public void echoTextMessage(Session session, String msg) {
    try {
        session.getBasicRemote().sendText(msg);
    } catch (IOException e) {
        try {
            session.close();
        } catch (IOException e1) {
            // Ignore
        }
    }
}
项目:Hydrograph    文件:LocalJobLauncher.java   
@Override
public void launchJob(String xmlPath, String paramFile,String userFunctionsPropertyFile, Job job, DefaultGEFCanvas gefCanvas,List<String> externalFiles,List<String> subJobList) {
    Session session=null;

    if(isExecutionTrackingOn()){
        HydrographServerConnection hydrographServerConnection = new HydrographServerConnection();
        session = hydrographServerConnection.connectToServer(job, job.getUniqueJobId(), 
                webSocketLocalHost);
    if(hydrographServerConnection.getSelection() == 1){
        TrackingDisplayUtils.INSTANCE.closeWebSocketConnection(session);
        return;
    }
    } 

    String projectName = xmlPath.split("/", 2)[0];
    IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
    job.setJobProjectDirectory(project.getLocation().toOSString());

    String gradleCommand;
    job.setJobStatus(JobStatus.RUNNING);
    JobManager.INSTANCE.enableRunJob(false);

    enableLockedResources(gefCanvas);
    gradleCommand = getExecututeJobCommand(xmlPath, paramFile,userFunctionsPropertyFile, job);
    executeCommand(job, project, gradleCommand, gefCanvas);

    if(job.getJobStatus().equalsIgnoreCase(JobStatus.RUNNING)){
        job.setJobStatus(JobStatus.SUCCESS);
    }

    if (job.getCanvasName().equals(JobManager.INSTANCE.getActiveCanvas())) {
        JobManager.INSTANCE.enableRunJob(true);
    }

    refreshProject(gefCanvas);
    JobManager.INSTANCE.removeJob(job.getCanvasName());
    ViewExecutionHistoryUtility.INSTANCE.addTrackingJobs(job.getConsoleName(), job);
    TrackingDisplayUtils.INSTANCE.closeWebSocketConnection(session);
}
项目:anychat    文件:MessageService.java   
/**
 * 随机线程
 * 
 * @param wsPacket
 */
public void userMessageReceiveHandle(WsPacket wsPacket) {
    Session session = (Session) wsPacket.session;
    OnlineUser onlineUser = OnlineUserManager.getOnlineUserBySessionId(session.getId());
    if (onlineUser == null) {
        WSManager.log.warn("发消息的非在线用户,直接返回");
        return;
    }
    UserMessageReceiveC builder1 = (UserMessageReceiveC) wsPacket.getData();
    boolean result = ChatAction.updateChat(builder1.getMessageIdList());
}
项目:apache-tomcat-7.0.73-with-comment    文件:PojoEndpointServer.java   
@Override
public void onOpen(Session session, EndpointConfig endpointConfig) {

    ServerEndpointConfig sec = (ServerEndpointConfig) endpointConfig;

    Object pojo;
    try {
        pojo = sec.getConfigurator().getEndpointInstance(
                sec.getEndpointClass());
    } catch (InstantiationException e) {
        throw new IllegalArgumentException(sm.getString(
                "pojoEndpointServer.getPojoInstanceFail",
                sec.getEndpointClass().getName()), e);
    }
    setPojo(pojo);

    @SuppressWarnings("unchecked")
    Map<String,String> pathParameters =
            (Map<String, String>) sec.getUserProperties().get(
                    POJO_PATH_PARAM_KEY);
    setPathParameters(pathParameters);

    PojoMethodMapping methodMapping =
            (PojoMethodMapping) sec.getUserProperties().get(
                    POJO_METHOD_MAPPING_KEY);
    setMethodMapping(methodMapping);

    doOnOpen(session, endpointConfig);
}
项目:anychat    文件:MessageServiceMongodb.java   
/**
 * 随机线程
 * 
 * @param wsPacket
 */
public void userMessageReceiveHandle(WsPacket wsPacket) {
    Session session = (Session) wsPacket.session;
    OnlineUserMongodb onlineUser = OnlineUserManagerMongodb.getOnlineUserBySessionId(session.getId());
    if (onlineUser == null) {
        WSManager.log.warn("发消息的非在线用户,直接返回");
        return;
    }
    UserMessageReceiveC builder1 = (UserMessageReceiveC) wsPacket.getData();
    boolean result = ChatActionMongodb.updateChat(builder1.getMessageIdList(), builder1.getUserId(), onlineUser.getUserId());
}
项目:docker-restful-java    文件:SessionManager.java   
/**
 * Save the session into the correct channel ID.
 * @param session session object.
 * @param id channel id.
 */
void add(Session session, Long id) {
    if(!sessions.containsKey(id)) {
        List<Session> tmp = new ArrayList<>();
        tmp.add(session);
        sessions.put(id, tmp);
    } else {
        sessions.get(id).add(session);
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:TesterEchoServer.java   
@OnMessage(maxMessageSize = MAX_SIZE)
public void echoBinaryMessage(Session session, ByteBuffer msg) {
    try {
        session.getBasicRemote().sendBinary(msg);
    } catch (IOException e) {
        try {
            session.close();
        } catch (IOException e1) {
            // Ignore
        }
    }
}
项目:tomcat7    文件:TesterEchoServer.java   
@OnMessage
public void echoBinaryMessage(Session session, ByteBuffer msg,
        boolean last) {
    try {
        session.getBasicRemote().sendBinary(msg, last);
    } catch (IOException e) {
        try {
            session.close();
        } catch (IOException e1) {
            // Ignore
        }
    }
}
项目:simpleblockchain    文件:ReverseWebSocketEndpoint.java   
@OnMessage
public void handleMessage(Session session, String message) throws IOException {
    logger.info("Received msg: " + message);
    String sendMsg = "Reversed: " + new StringBuilder(message).reverse();
    session.getBasicRemote().sendText(sendMsg);
    logger.info("Send msg: " + sendMsg);
}
项目:flux-capacitor-client    文件:SingleSessionSupplier.java   
@Override
public Session get() {
    return session.updateAndGet(s -> {
        while (s == null || !s.isOpen()) {
            s = TimingUtils.retryOnFailure(() -> client.connectToServer(endpoint, endpointUri), reconnectDelay);
        }
        return s;
    });
}
项目:apache-tomcat-7.0.73-with-comment    文件:TestWsWebSocketContainer.java   
@Test
public void testConnectToServerEndpoint() throws Exception {
    Tomcat tomcat = getTomcatInstance();
    // No file system docBase required
    Context ctx = tomcat.addContext("", null);
    ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
    Tomcat.addServlet(ctx, "default", new DefaultServlet());
    ctx.addServletMapping("/", "default");

    tomcat.start();

    WebSocketContainer wsContainer =
            ContainerProvider.getWebSocketContainer();
    // Set this artificially small to trigger
    // https://bz.apache.org/bugzilla/show_bug.cgi?id=57054
    wsContainer.setDefaultMaxBinaryMessageBufferSize(64);
    Session wsSession = wsContainer.connectToServer(
            TesterProgrammaticEndpoint.class,
            ClientEndpointConfig.Builder.create().build(),
            new URI("ws://" + getHostName() + ":" + getPort() +
                    TesterEchoServer.Config.PATH_ASYNC));
    CountDownLatch latch = new CountDownLatch(1);
    BasicText handler = new BasicText(latch);
    wsSession.addMessageHandler(handler);
    wsSession.getBasicRemote().sendText(MESSAGE_STRING_1);

    boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);

    Assert.assertTrue(latchResult);

    Queue<String> messages = handler.getMessages();
    Assert.assertEquals(1, messages.size());
    Assert.assertEquals(MESSAGE_STRING_1, messages.peek());

    ((WsWebSocketContainer) wsContainer).destroy();
}
项目:springbootWeb    文件:OrderNotificationEndPoint.java   
private void sendMessage(Session session, String message) {
    try {
        session.getBasicRemote().sendText(message);
    } catch (IOException e) {
        e.printStackTrace();
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:PojoEndpointBase.java   
private void handleOnOpenError(Session session, Throwable t) {
    // If really fatal - re-throw
    ExceptionUtils.handleThrowable(t);

    // Trigger the error handler and close the session
    onError(session, t);
    try {
        session.close();
    } catch (IOException ioe) {
        log.warn(sm.getString("pojoEndpointBase.closeSessionFail"), ioe);
    }
}