资源简介
使用SSM框架整合websocket实现即时通讯功能,可以实现私聊和群聊,里面附带mysql数据库脚本
代码片段和文件信息
package com.jyp.chatroom.Controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONobject;
import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* websocket服务
* @author : Amayadream
* @time : 2016.01.08 09:50
*/
@ServerEndpoint(value = “/chatServer“ configurator = HttpSessionConfigurator.class)
public class ChatServer {
private static int onlineCount = 0; //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet();
private Session session; //与某个客户端的连接会话,需要通过它来给客户端发送数据
private String username; //用户名
private HttpSession httpSession; //request的session
private static List list = new ArrayList<>(); //在线列表记录用户名称
private static Map routetab = new HashMap<>(); //用户名和websocket的session绑定的路由表
/**
* 连接建立成功调用的方法
* @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
*/
@OnOpen
public void onOpen(Session session EndpointConfig config){
this.session = session;
webSocketSet.add(this); //加入set中
addOnlineCount(); //在线数加1;
this.httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
this.username=(String) httpSession.getAttribute(“username“); //获取当前用户
list.add(username); //将用户名加入在线列表
routetab.put(username session); //将用户名和session绑定到路由表
String message = getMessage(“[“ + username + “]加入聊天室当前在线人数为“+getOnlineCount()+“位“ “notice“ list);
broadcast(message); //广播
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose(){
webSocketSet.remove(this); //从set中删除
subOnlineCount(); //在线数减1
list.remove(username); //从在线列表移除这个用户
routetab.remove(username);
String message = getMessage(“[“ + username +“]离开了聊天室当前在线人数为“+getOnlineCount()+“位“ “notice“ list);
broadcast(message); //广播
}
/**
* 接收客户端的message判断是否有接收人而选择进行广播还是指定发送
* “massage“ : {
* “from“ : “xxx“
* “to“ : “xxx“
* “content“ : “xxx“
* “time“ : “xxxx.xx.xx“
* }
* “type“ : {notice|message|image}
* “list“ : {[xx][xx][xx]}
* @param _message 客户端发送过来的消息
*/
@OnMessage
public void onMessage(String _message) {
JSONobject chat = JSON.parseobject(_message);
JSONobject message = JSON.parseobject(chat.get(“message“).toString());
if(message.get(“to“) == null || message.get(“to“).equals(““)){ //如果to为空则广播;如果不为空则对指定的用户发送消息
broadcast(_message);
}else{
String [] userlist = message.get(“to“).toString().split(““);
singleSend(_message (Session) rou
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-06 07:04 Chatroom-SSM-master\
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\artifacts\
文件 286 2017-03-06 07:04 Chatroom-SSM-master\.idea\artifacts\ChatroomDemo_war.xm
文件 4971 2017-03-06 07:04 Chatroom-SSM-master\.idea\artifacts\ChatroomDemo_war_exploded.xm
文件 1200 2017-03-06 07:04 Chatroom-SSM-master\.idea\compiler.xm
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\copyright\
文件 74 2017-03-06 07:04 Chatroom-SSM-master\.idea\copyright\profiles_settings.xm
文件 1663 2017-03-06 07:04 Chatroom-SSM-master\.idea\dataSources.ids
文件 896 2017-03-06 07:04 Chatroom-SSM-master\.idea\dataSources.xm
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\dictionaries\
文件 144 2017-03-06 07:04 Chatroom-SSM-master\.idea\dictionaries\asus.xm
文件 172 2017-03-06 07:04 Chatroom-SSM-master\.idea\encodings.xm
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\inspectionProfiles\
文件 785 2017-03-06 07:04 Chatroom-SSM-master\.idea\inspectionProfiles\Project_Default.xm
文件 235 2017-03-06 07:04 Chatroom-SSM-master\.idea\inspectionProfiles\profiles_settings.xm
目录 0 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\
文件 514 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__aopalliance_aopalliance_1_0.xm
文件 465 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__c3p0_c3p0_0_9_1_2.xm
文件 568 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__ch_qos_logback_logback_classic_1_1_1.xm
文件 547 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__ch_qos_logback_logback_core_1_1_1.xm
文件 507 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_alibaba_fastjson_1_2_7.xm
文件 605 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_api_1_0_8.xm
文件 696 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_collectionschema_1_0_8.xm
文件 612 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_core_1_0_8.xm
文件 633 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_runtime_1_0_8.xm
文件 644 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxm
文件 595 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxm
文件 623 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxm
文件 602 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__commons_collections_commons_collections_3_2.xm
文件 558 2017-03-06 07:04 Chatroom-SSM-master\.idea\libraries\Maven__commons_logging_commons_logging_1_2.xm
............此处省略85个文件信息
相关资源
- 之前上传的ssm商城的数据库文件
- springboot druid maven多数据源mysql+SqlSer
- SSM食品管理系统food数据库
- Linux发布SSM项目详细文档
- ssm和PostgreSQL整合
- 简单SSM框架-用户登录
- SpringBoot整合SSM框架——最简单
- SSM框架IDEA+Spring+SpringMVC+Maven+Mybatis
- Maven+SSM+Shiro框架整合完整实现,实现
- SpringBoot2.0整合SSM框架,Vue.js项目
- SSMA for Oracle 5.2
- SSMA for Oracle 5.2 带license
- 基于SSM框架在线考试系统设计文档
- Spring MVC 整合Mybatis详解,SSM框架的配
- 基于ssm的小区物业管理系统
- 在线云盘项目SSM框架源代码+sql+答辩
- 基于SSM框架在线考试系统
- SQLServer2017,SSMS中文版,SQLServer2017密
- SSMA for Oracle 6.0 带license
- 基于SSM实现人事管理系统
- 基于SSM+MySQL的进销存管理系统
- Shiro登陆验证,采用SSM
- 基于ssm框架的师生交流系统的设计与
- 黑马boot客户管理系统.zip
- maven+ssm用idea写的一个简单vip管理系统
- ssm增删改查、分页、批量删除、小
- Maven+SSM+Mysql+Bootstrap整合实现管理员登
- 基于SSM的论坛开发
- SSM框架IDEA+Spring+SpringMVC+Maven+Mybatis+M
- Qt之QNetworkAccessManager 实现FTP文件上传
评论
共有 条评论