• 大小: 6.65MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: Java
  • 标签: 聊天室  websocket  

资源简介

此文件为websocket实现的聊天室,后台源码为java编写,下载解压部署好即可使用

资源截图

代码片段和文件信息



import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
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 net.sf.json.JSONobject;

/**
 * 聊天服务器类
 * @author 朱宏亮
 *
 *@ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端。
 *注解的值将被用于监听用户连接的终端访问URL地址。
 *
 *onOpen 和 onClose 方法分别被 @OnOpen 和 @OnClose 所注解。
 *这两个注解的作用不言自明:他们定义了当一个新用户连接和断开的时候所调用的方法。
 *
 *onMessage 方法被 @OnMessage 所注解。
 *这个注解定义了当服务器接收到客户端发送的消息时所调用的方法。
 *注意:这个方法可能包含一个javax.websocket.Session可选参数(在我们的例子里就是session参数)。
 *如果有这个参数,容器将会把当前发送消息客户端的连接Session注入进去。
 *
 */
@ServerEndpoint(“/websocket“)
public class ChatServer {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(“yyyy-MM-dd HH:mm“); // 日期格式化

static Set users =  new CopyOnWriteArraySet();//把所有的session存在这个static集合里面

@OnOpen
public void open(Session session) {
// 添加初始化操作
users.add(session);
System.out.println(“当前用户数量:“+users.size());
}

/**
 * 接受客户端的消息,并把消息发送给所有连接的会话
 * @param message 客户端发来的消息
 * @param session 客户端的会话
 */
@OnMessage
public void getMessage(String message Session session) {
//打印message
System.out.println(“当前用户发送信息:“+message);
System.out.println(“当前用户sessionID:“+session.getId());

// 把客户端的消息解析为JSON对象
JSONobject jsonobject = JSONobject.fromobject(message);

// 在消息中添加发送日期
jsonobject.put(“date“ DATE_FORMAT.format(new Date()));

// 把消息发送给所有连接的会话
int i = 0 ;
System.out.println(“当前用户数量:“+users.size());
for (Session openSession : users) {

// 添加本条消息是否为当前会话本身发的标志
jsonobject.put(“isSelf“ openSession.equals(session));

// 发送JSON格式的消息
openSession.getAsyncRemote().sendText(jsonobject.toString());

}
}

@OnClose
public void close(Session session) {
// 添加关闭会话时的操作
users.remove(session);
System.out.println(“用户已断开ID:“+session.getId());
}

@onerror
public void error(Throwable t Session session) {
// 添加处理错误的操作
try{
System.out.println(“客户端断开连接“);
//close(session);
}catch(Exception a){
a.printStackTrace();
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......       817  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.classpath

    .......         8  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.gitignore

    .......      1022  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.project

    .......       555  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\.jsdtscope

    .......       357  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\org.eclipse.jdt.core.prefs

    .......       503  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\org.eclipse.wst.common.component

    .......       335  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\org.eclipse.wst.common.project.facet.core.xml

    .......        49  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\org.eclipse.wst.jsdt.ui.superType.container

    .......         6  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\.settings\org.eclipse.wst.jsdt.ui.superType.name

    .......      3454  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\build\classes\ChatServer.class

    .......        29  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\README.md

    .......      3021  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\src\ChatServer.java

    .......      3049  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\admin.css

    .......    304221  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\amazeui.css

    .......    305083  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\amazeui.flat.css

    .......    233027  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\amazeui.flat.min.css

    .......    232205  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\amazeui.min.css

    .......        23  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\css\app.css

    .......      7215  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\app-icon72x72@2x.png

    .......      3594  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\admin-chrome.png

    .......      4030  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\admin-firefox.png

    .......      3999  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\admin-ie.png

    .......      3749  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\admin-opera.png

    .......      4055  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\admin-safari.png

    .......      2702  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\adminPage.png

    .......      2581  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\blogPage.png

    .......      4520  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\landing.png

    .......      2499  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\landingPage.png

    .......      2081  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\loginPage.png

    .......      2365  2016-12-30 15:33  HTML5_WebSocket_JAVA8_Chat\WebContent\assets\i\examples\sidebarPage.png

............此处省略159个文件信息

评论

共有 条评论