首页>代码>基于html5的websocket后台即时通讯,三个小例子,从简单到复杂,从无界面到有界面>/websocket-demo/src/main/java/com/example/demo/socket/server/WebSocketServer1.java
package com.example.demo.socket.server;

import java.util.concurrent.CopyOnWriteArraySet;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * websocket聊天信息的接收处理,最简单的demo
 * @author 程就人生
 * @date 2019年9月24日
 * @Description 
 *
 */
@ServerEndpoint("/websocket1")  
@Component
public class WebSocketServer1 {
	
    private static Logger log = LoggerFactory.getLogger(WebSocketServer1.class);
    //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。  
    private static CopyOnWriteArraySet<WebSocketServer1> webSocketSet = new CopyOnWriteArraySet<WebSocketServer1>();  
  
    /** 
     * 连接建立成功调用的方法
     */  
    @OnOpen  
    public void onOpen(Session session) {
        //加入set中  
        webSocketSet.add(this);     
        log.info("有新连接加入!当前在线人数为" +  webSocketSet.size());
    }  
  
    /** 
     * 连接关闭调用的方法 
     */  
    @OnClose  
    public void onClose() {  
    	//从set中删除  
        webSocketSet.remove(this);
        log.info("有一连接关闭!当前在线人数为" + webSocketSet.size());  
    }  
  
    /** 
     * 收到客户端消息后调用的方法 
     * 
     * @param message 客户端发送过来的消息
     * @param session
     */  
	@OnMessage  
    public void onMessage(String message, Session session) { 
    	log.info("来自客户端的消息:" + message); 
        try {
        	//将自己发出去的消息再发给自己
			session.getBasicRemote().sendText(message);  
		}catch(Exception e){
			e.printStackTrace();
		}       
        
    }  
  
    /** 
     *  
     * @param session 
     * @param error 
     */  
    @OnError  
    public void onError(Session session, Throwable error) {  
        log.error("发生错误");  
        error.printStackTrace();  
    } 
}  
最近下载更多
荣》Cowboy  LV12 2023年3月29日
zz1230012300  LV11 2022年8月22日
wang512237140  LV20 2022年8月2日
无花空折枝  LV9 2022年8月1日
a1677596408  LV23 2021年7月27日
xxxxx2021  LV1 2021年7月14日
1666568158  LV2 2021年5月18日
1517536943  LV5 2021年4月25日
johnlhr  LV4 2020年10月25日
930384782  LV9 2020年9月30日
最近浏览更多
王龙abcdef  LV1 2024年10月29日
暂无贡献等级
微信网友_6927932988952576  LV12 2024年3月31日
13940562934  LV22 2024年3月6日
1234567p  LV1 2023年12月4日
漫步的海星  LV4 2023年9月21日
shaoqi 2023年7月26日
暂无贡献等级
荣》Cowboy  LV12 2023年3月29日
lijiecai  LV2 2023年3月18日
微信网友_6393440821071872  LV2 2023年3月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友