@Component
@ServerEndpoint(value = "/endpoint/ws")
public class WebSocketServer {
private final Logger logger = LoggerFactory.getLogger(getClass());
private static final AtomicInteger onlineCount = new AtomicInteger();
@OnOpen
public void onOpen(Session session, @PathParam("sid") String sid) {
//在线数加1
onlineCount.incrementAndGet();
logger.info("新窗口监听 {}, 当前在线人数 {}",sid,onlineCount.get());
} @OnClose
public void onClose() {
//在线数减1
onlineCount.decrementAndGet();
logger.info("连接关闭, 当前在线人数为 {}",onlineCount.get());
} @OnError
public void onError(Session session, Throwable error) {
logger.warn("发生错误, 非正常关闭 {}, 当前在线人数为 {}", onlineCount.get());
}
}

WebSocketServer的更多相关文章

  1. SuperSocket.WebSocket.WebSocketServer.Setup无法启动

    新学一词:达克效应.引出一句:"无知要比知识更容易产生自信."-- 查尔斯·达尔文 写在前面 在三亚呆了半个月了,三亚的冬天好热啊,让我回忆起了放暑假时下午百无聊赖的时光 { 一睡 ...

  2. Spring Boot Service注入为null mapper注入为null @Component注解下@Value获取不到值 WebsocketServer类里无法注入service

    最近搞了一下websocket前台(这个网上有很多的教程这里就不班门弄斧啦) 以及前后台的交互 和后台的bug(搞了两天) 也是状态频发 bug不断 下面说一说问题. Websocket主类里面无法注 ...

  3. iOS&Node 搭建WebSocketServer实现聊天

    Server端使用的是Node.JS里的一个Socket.io的模块 iOS客户端使用的是SocketIO和SBJson框架 作者的源码有些问题,我做了一些自定义的修改. 代码地址:https://g ...

  4. 借助Nodejs探究WebSocket

    文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...

  5. JavaScript之web通信

    web通信,一个特别大的topic,涉及面也是很广的.因最近学习了 javascript 中一些 web 通信知识,在这里总结下.文中应该会有理解错误或者表述不清晰的地方,还望斧正! 一.前言 1. ...

  6. H5 WebSocket 如何和C#进行通信

    HTML5作为下一代的 Web 标准, 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等.WebSocket 在浏览器和服务器之间提供了一个基于 TCP 连 ...

  7. 使用WebRTC搭建前端视频聊天室——信令篇

    博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址 ...

  8. CheungSSH国产自动化运维工具开源Web界面

    CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...

  9. .NET 的 WebSocket 开发包比较(转)

    .NET 的 WebSocket 开发包比较 编者按 本文出现在第三方产品评论部分中.在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品.请会员报告任何垃圾信息或广告. ...

随机推荐

  1. mysql之各版本rpm包安装

    发现每次想用mysql的rpm包直接安装的时候,都会出现找不到对应的rpm包的情况,故记录一下查找过程 进入官网->downloads->community->mysql commu ...

  2. IDEA下同时使用Git和svn

    使用Git时将文件改成Git,Svn时改成svn 修改项目下.idea目录的vcs.xml配置文件. <?xml version="1.0" encoding="U ...

  3. 【视频开发】ffmpeg 的编译选项

    ffmpeg xxxx$ ./configure --help Usage: configure [options] Options: [defaults in brackets after desc ...

  4. vscode添加vue文件模板

    文件->首选项->用户代码片段->输入vue,打开vue.json 添加模板json "Print to console": { "prefix&quo ...

  5. ztree取消之前选中状态并设置新的选中

    var zTreeObject = $.fn.zTree.getZTreeObj("treeId"); var node = zTreeObject.getNodeByParam( ...

  6. 完全卸载MySQL服务

    1.控制面板——>所有控制面板项——>程序和功能,卸载mysql server! 2.删除MySQL文件,尤其是ProgramData里面的隐藏文件MySQL,我当时没有删除,重新安装My ...

  7. AR*客户地点分配OU

    DECLARE p_cust_acct_site_rec hz_cust_account_site_v2pub.cust_acct_site_rec_type; p_cust_site_use_rec ...

  8. 解决SQL server 18740、18456登录失败问题

    第一步:使用window管理员用户登录SQL server 第二步:如下图步骤(开始配置sa默认用户) 第三步:选择角色类型 第四步:选择和配置用户映射的数据库 第五步:授予允许连接,并开启登录权限 ...

  9. php策略模式实现简单计算器

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. quartz2.3.0(七)调度器中断任务执行,手动处理任务中断事件

    job任务类 package org.quartz.examples.example7; import java.util.Date; import org.slf4j.Logger; import ...