wecat.rar websocket在线聊天 即时通讯

  • w8_866102
    了解作者
  • 38.9KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-22 11:23
    上传日期
websocket 在线聊天
wecat.rar
内容介绍
package com.lfwer.pinche.web; import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; import javax.websocket.*; import javax.websocket.server.ServerEndpoint; /** * @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端, * 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端 */ @ServerEndpoint("/websocket") public class WebSocketTest { //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。 private static int onlineCount = 0; //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识 private static CopyOnWriteArraySet<WebSocketTest> webSocketSet = new CopyOnWriteArraySet<WebSocketTest>(); //与某个客户端的连接会话,需要通过它来给客户端发送数据 private Session session; /** * 连接建立成功调用的方法 * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据 */ @OnOpen public void onOpen(Session session){ this.session = session; webSocketSet.add(this); //加入set中 addOnlineCount(); //在线数加1 System.out.println("有新连接加入!当前在线人数为" + getOnlineCount()); } /** * 连接关闭调用的方法 */ @OnClose public void onClose(){ webSocketSet.remove(this); //从set中删除 subOnlineCount(); //在线数减1 System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount()); } /** * 收到客户端消息后调用的方法 * @param message 客户端发送过来的消息 * @param session 可选的参数 */ @OnMessage public void onMessage(String message, Session session) { System.out.println("来自客户端的消息:" + message); //群发消息 for(WebSocketTest item: webSocketSet){ try { item.sendMessage(message); } catch (IOException e) { e.printStackTrace(); continue; } } } /** * 发生错误时调用 * @param session * @param error */ @OnError public void onError(Session session, Throwable error){ System.out.println("发生错误"); error.printStackTrace(); } /** * 这个方法与上面几个方法不一样。没有用注解,是根据自己需要添加的方法。 * @param message * @throws IOException */ public void sendMessage(String message) throws IOException{ this.session.getBasicRemote().sendText(message); //this.session.getAsyncRemote().sendText(message); } public static synchronized int getOnlineCount() { return onlineCount; } public static synchronized void addOnlineCount() { WebSocketTest.onlineCount++; } public static synchronized void subOnlineCount() { WebSocketTest.onlineCount--; } }
评论
    相关推荐
    • webSocket
      NULL 博文链接:https://zaq369cde.iteye.com/blog/1908461
    • websocket
      NULL 博文链接:https://bruce-king.iteye.com/blog/2095677
    • WebSocketDemo
      WebSocket演示 我写的博客文章的演示代码: 该演示看起来不太漂亮: 但是,如果您尝试编写WebSocket处理程序并且想要将代码与某些正在运行的代码进行比较,则可能会对您有所帮助。 出发点 看一下 。 其他感兴趣的...
    • Jmeter WebSocket
      Jmeter添加WebSocket Sampler,下载后放到/lib/ext文件夹下,再次添加Sampler会多出WebSocket Sampler
    • websocket
      多人游戏Websocket Web套接字服务器,它将从多个客户端获取游戏数据。 直播制作此项目 设置网络套接字 Websocket自动部署到云端运行 Websocket上具有客户端渲染功能的多人游戏 游戏服务器 Web套接字已设置为自动...
    • WebSocket
      Dimagine WebSocket 本地运行 运行服务器: php -S localhost:8081 -t public 运行聊天: php bin/chat-server.php 运行ngrok: ngrok http 8080 指令 要发送消息: {"command":"message","message":"testMessage...
    • JMETER WEBSOCKET
      比较新的JMETER WEBSOCKET插件,给有需要的人用~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    • WebSocket
      websocket演示 介绍 娱乐应用网络聊天室功能的实现,前端简单实现,用于验证功能。 软件架构 一个用来学习websocket的演示。
    • websocket
      什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,客户端和服务器只需要完成一次握手...
    • websocket源码
      这里特别说明下因为WebSocket服务端是公司线上项目所以这里url和具体协议我全部抹去了,但我会尽力给大家讲明白并且demo我都是测试过,还望各位看官见谅 我们先粗犷的讲下流程,掌握个大概的方向,然后在深入讲解细节的...