首页>代码>基于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日
最近浏览更多
54321zz 10月15日
暂无贡献等级
蓝蓝蓝说的 10月8日
暂无贡献等级
xxxyyyddd 10月8日
暂无贡献等级
igher123  LV1 10月8日
ljh12134546 10月8日
暂无贡献等级
周鸣郝  LV2 5月26日
qq970040477  LV24 5月26日
lalalla159  LV3 2023年12月2日
yybb7435100  LV2 2023年8月7日
你爹正在加载中  LV4 2023年7月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友