java WebSocket 即时通讯服务端代码

1010阅读 0评论2022-05-11 fhadmin
分类:Java


点击(此处)折叠或打开


  1. ackage org.fh.plugins.ChatServer;
  2.  
  3. import java.net.InetSocketAddress;
  4. import java.net.UnknownHostException;
  5.  
  6. import org.java_websocket.WebSocket;
  7. import org.java_websocket.framing.Framedata;
  8. import org.java_websocket.handshake.ClientHandshake;
  9. import org.java_websocket.server.WebSocketServer;
  10.  
  11. /**
  12.  * 说明:websocket服务端
  13.  * 作者:FH Admin
  14.  * from:fhadmin.cn
  15.  */
  16. public class ChatServer extends WebSocketServer{
  17.  
  18.     public BulletChatServer(int port) throws UnknownHostException {
  19.         super(new InetSocketAddress(port));
  20.     }
  21.  
  22.     public BulletChatServer(InetSocketAddress address) {
  23.         super(address);
  24.     }
  25.  
  26.     /**
  27.      * 客户端发送消息到服务器时触发事件
  28.      */
  29.     @Override
  30.     public void onMessage(WebSocket conn, String message){
  31.         message = message.toString();
  32.         if(null != message && message.startsWith("[video313596790]")){
  33.             this.userjoin(message.replaceFirst("\\[video313596790\\]", ""),conn);
  34.         }else{
  35.             BulletChatServerPlool.sendMessage(message.toString());//向所有在线用户发送消息
  36.         }
  37.     }
  38.  
  39.     public void onFragment( WebSocket conn, Framedata fragment ) {
  40.     }
  41.     
  42.     /**
  43.      * 用户加入处理
  44.      * @param user
  45.      */
  46.     public void userjoin(String user, WebSocket conn){
  47.         BulletChatServerPlool.addUser(user,conn);                            //向连接池添加当前的连接对象
  48.     }
  49.     
  50.     /**
  51.      * 用户下线处理
  52.      * @param user
  53.      */
  54.     public void userLeave(WebSocket conn){
  55.         BulletChatServerPlool.removeUser(conn);                                 //在连接池中移除连接
  56.     }
  57.     
  58.     /**
  59.      * 触发连接事件
  60.      */
  61.     @Override
  62.     public void onOpen( WebSocket conn, ClientHandshake handshake ) {}
  63.  
  64.     /**
  65.      * 触发关闭事件
  66.      */
  67.     @Override
  68.     public void onClose( WebSocket conn, int code, String reason, boolean remote ) {
  69.         userLeave(conn);
  70.     }
  71.     
  72.     /**
  73.      * 触发异常事件
  74.      */
  75.     @Override
  76.     public void onError( WebSocket conn, Exception ex ) {
  77.         if( conn != null ) {}
  78.     }
  79.     
  80.     @Override
  81.     public void onStart() {}
  82.  
  83. }


上一篇:java Mysql 根据经纬度实时计算地址位置距离
下一篇:springboot 打 jar 包后读取不到文件