资源简介
使用SSM框架整合websocket实现即时通讯功能,可以实现私聊和群聊,里面附带mysql数据库脚本
![](http://www.nz998.com/pic/61149.jpg)
代码片段和文件信息
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及前后端分离的复习系统
- 网上订餐系统 SSM框架
- SSM+mysql购书商城2018届毕设
- SSM整合-商贸系统
- 基于vue全家桶nodejsexpressmysql实现的商
- SL会员商城
- 基于SSM框架的增删改查Ajax分页模糊查
- 基于springmvc、spring、mybatis、shiro、e
- 健身房管理系统
- SSM框架--Spring+SpringMVC+Mybatis整合
- SSM+bootstrap+mysql做的一个用户登录和权
- spring+springmvc+mybatis OA考勤管理系统带
- SSM+Shiro+Redis+Activiti-OA
- ssm+mysql的web在线考试系统
- ssm旅行管理系统
- SSM框架连接MySQL实现简单的增删改查
- SSM学校教务管理系统项目
- 基于SSM框架的完整项目 Spring+SpringMV
- SSM框架的分页模糊查询代码(精)
- ssm框架--spring mvc实现文件上传
- 基于SSM+Mysql的银行用户管理系统
- SSM框架+mybatis自动生成代码
- SSM框架实现简单用户信息管理系统
- SSM两表增删查
- ssmCrudOracleDemo
- 基于SSM的简单的增删改查源代码+SQL新
- 一个使用SSM最最初级代码实现的登录
- SSM-文件上传和,存储信息到数据库
- spring+Mybatis+SpringMVC资源整合增删改查
- 网页版在线音乐系统
评论
共有 条评论