资源简介
此文件为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.xm
....... 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个文件信息
相关资源
- 基于Android的聊天室应用 ChatRoom 1.4
- 基于java的网络白板+聊天室+教育白板
- 基于Tomcat7、Java、Ext、WebSocket的聊天室
- 基于J2EE的网页版在线聊天室
- Web Socket聊天.java eclipse
- WebSocket客户端和服务端
- 高仿/类似QQ8.x版聊天室好友列表+服务
- Java 设计的聊天程序-完整代码
- java聊天室课程设计源码含设计报告
- 基于html5websocket java实现简单通讯
- Java仿QQ聊天程序源代码
- 基于Chrome、Java、WebSocket、WebRTC实现浏
- Eclipse+ jetty+android+websocket协议整合
- websocket 即时通讯案例 ,一对一聊天,
- java课设_在线网络聊天室
- 基于Java Swing 的带有文件上传和的聊天
- 网络聊天室带有文件上传功能
- JavaFxchatroom.zip
- UML课程设计java web网上聊天室
- 基于jsp技术的仿webqq聊天系统
- 安卓聊天室系统源码(服务端+客户端
- JSP聊天室源码+文档
- 安卓蓝牙聊天室源码及报告
- jspWebsocket 实现web实时通讯
- 西安电子科技大学java聊天室大作业
- 毕业答辩-JAVA基于局域网的聊天室系统
- 基于http的android聊天软件
- java利用websocket实现多人聊天室spring
- android下的XMPP对应smack-4.2.1,实现登录
- websocket群聊demo
评论
共有 条评论