• 大小: 154KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 数据库
  • 标签: SSM  

资源简介

使用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.xml
     文件        4971  2017-03-06 07:04  Chatroom-SSM-master\.idea\artifacts\ChatroomDemo_war_exploded.xml
     文件        1200  2017-03-06 07:04  Chatroom-SSM-master\.idea\compiler.xml
     目录           0  2017-03-06 07:04  Chatroom-SSM-master\.idea\copyright\
     文件          74  2017-03-06 07:04  Chatroom-SSM-master\.idea\copyright\profiles_settings.xml
     文件        1663  2017-03-06 07:04  Chatroom-SSM-master\.idea\dataSources.ids
     文件         896  2017-03-06 07:04  Chatroom-SSM-master\.idea\dataSources.xml
     目录           0  2017-03-06 07:04  Chatroom-SSM-master\.idea\dictionaries\
     文件         144  2017-03-06 07:04  Chatroom-SSM-master\.idea\dictionaries\asus.xml
     文件         172  2017-03-06 07:04  Chatroom-SSM-master\.idea\encodings.xml
     目录           0  2017-03-06 07:04  Chatroom-SSM-master\.idea\inspectionProfiles\
     文件         785  2017-03-06 07:04  Chatroom-SSM-master\.idea\inspectionProfiles\Project_Default.xml
     文件         235  2017-03-06 07:04  Chatroom-SSM-master\.idea\inspectionProfiles\profiles_settings.xml
     目录           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.xml
     文件         465  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__c3p0_c3p0_0_9_1_2.xml
     文件         568  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__ch_qos_logback_logback_classic_1_1_1.xml
     文件         547  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__ch_qos_logback_logback_core_1_1_1.xml
     文件         507  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_alibaba_fastjson_1_2_7.xml
     文件         605  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_api_1_0_8.xml
     文件         696  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_collectionschema_1_0_8.xml
     文件         612  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_core_1_0_8.xml
     文件         633  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_dyuproject_protostuff_protostuff_runtime_1_0_8.xml
     文件         644  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_annotations_2_2_3.xml
     文件         595  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_core_2_2_3.xml
     文件         623  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_databind_2_2_3.xml
     文件         602  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__commons_collections_commons_collections_3_2.xml
     文件         558  2017-03-06 07:04  Chatroom-SSM-master\.idea\libraries\Maven__commons_logging_commons_logging_1_2.xml
............此处省略85个文件信息

评论

共有 条评论