首页>代码>基于java WebSocket实现的简单聊天室demo>/WebSocketChat/src/com/zhenzhigu/chat/ChatServer.java
package com.zhenzhigu.chat;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;

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 net.sf.json.JSONObject;

@ServerEndpoint("/websocket")
public class ChatServer {

	private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private static Vector<Session> room = new Vector<Session>();
	
	
	/**
	 * 用户接入
	 * @param session 可选
	 */
	@OnOpen
	public void onOpen(Session session){
		room.addElement(session);
	}
	
	/**
	 * 接收到来自用户的消息
	 * @param message
	 * @param session
	 */
	@OnMessage
	public void onMessage(String message,Session session){

		//把用户发来的消息解析为JSON对象
		JSONObject obj = JSONObject.fromObject(message);
		//向JSON对象中添加发送时间
		obj.put("date", df.format(new Date()));
		//遍历聊天室中的所有会话
		for(Session se : room){
			//设置消息是否为自己的
			obj.put("isSelf", se.equals(session));
			//发送消息给远程用户
			se.getAsyncRemote().sendText(obj.toString());
		}
	}
	
	/**
	 * 用户断开
	 * @param session
	 */
	@OnClose
	public void onClose(Session session){
		room.remove(session);
	}
	
	/**
	 * 用户连接异常
	 * @param t
	 */
	@OnError
	public void onError(Throwable t){
		System.out.println("用户连接异常...");
	}
}
最近下载更多
光头强1024  LV7 2023年6月8日
Tg171017  LV12 2023年2月18日
dengjunjun  LV15 2022年10月28日
364550246  LV15 2022年5月3日
弹指轻蔑  LV1 2022年3月1日
Mayoubin2001  LV21 2022年2月19日
xingbing  LV9 2022年1月28日
谢小饭_  LV8 2022年1月21日
ewan007  LV30 2021年8月29日
守望  LV2 2021年7月14日
最近浏览更多
220611325 前天
暂无贡献等级
MQ-EQW 2024年12月18日
暂无贡献等级
54321zz 2024年10月15日
暂无贡献等级
蓝蓝蓝说的 2024年10月8日
暂无贡献等级
xxxyyyddd 2024年10月8日
暂无贡献等级
igher123  LV1 2024年10月8日
ljh12134546 2024年10月8日
暂无贡献等级
周鸣郝  LV2 2024年5月26日
qq970040477  LV24 2024年5月26日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友