zoukankan      html  css  js  c++  java
  • 团队代码

    2021年6月12日:

    工具类代码:

    package com.atguigu.crud.utils;

    import javax.websocket.*;
    import javax.websocket.server.PathParam;
    import javax.websocket.server.ServerEndpoint;
    import org.springframework.stereotype.Component;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;

    @ServerEndpoint("/websocket/{userno}")
    @Component
    public class websocket {
    private static ConcurrentHashMap<String, websocket> webSocketSet = new ConcurrentHashMap<String, websocket>();
    private static Map<String, List<String>> map = new HashMap<>();
    private static List<String> list = new ArrayList<>();
    private Session WebSocketsession;
    private String userno = "";

    @OnOpen
    public void onOpen(@PathParam(value = "userno") String param, Session WebSocketsession, EndpointConfig config)
    throws IOException {
    userno = param;
    this.WebSocketsession = WebSocketsession;
    websocket webSocketServer = webSocketSet.get(param);
    if (webSocketServer != null) { // 同样业务的连接已经在线,则把原来的挤下线。
    webSocketServer.WebSocketsession.getBasicRemote().sendText(param + "重复连接被挤下线了");
    webSocketServer.WebSocketsession.close();
    }
    webSocketSet.put(param, this);
    if (map.get(param) != null) {
    webSocketSet.get(param).sendMessage(param);
    }
    }

    @OnClose
    public void onClose() {
    if (!userno.equals("")) {
    webSocketSet.remove(userno);
    }
    }

    @OnMessage
    public void onMessage(String message) {
    if (message.split("[|]")[1].contains(",")) {
    sendAll(message.split("[|]")[1].split(","));
    } else {
    sendToUser(message);
    }
    }
    public void sendToUser(String message) {
    String sendUserno = message.split("[|]")[1];
    String sendMessage = message.split("[|]")[0];
    try {
    if (webSocketSet.get(sendUserno) != null) {
    webSocketSet.get(sendUserno).sendMessage(sendUserno);
    } else {
    if (map.get(sendUserno) == null) {
    map.put(sendUserno, list);
    map.get(sendUserno).add(sendMessage);
    } else {
    map.get(sendUserno).add(sendMessage);
    }
    }
    } catch (IOException e) {
    }
    }

    private void sendAll(String a[]) {
    for (String key : a) {
    try {
    if (webSocketSet.get(key) != null) {
    webSocketSet.get(key).sendMessage(key);
    } else {
    if (map.get(key) == null) {
    map.put(key, list);
    map.get(key).add(key);
    } else {
    map.get(key).add(key);
    }
    }
    } catch (IOException e) {
    }
    }
    }

    @OnError
    public void onError(Session session, Throwable error) {
    error.printStackTrace();
    }

    public void sendMessage(String message) throws IOException {
    this.WebSocketsession.getBasicRemote().sendText(message);
    }
    }

    package com.atguigu.crud.utils;

    import java.util.Random;

    public class ValidateCodeTool {

    public static String generateCode(){
    String str="0123456789";
    StringBuilder sb=new StringBuilder(5);
    for(int i=0;i<5;i++)
    {
    char ch=str.charAt(new Random().nextInt(str.length()));
    sb.append(ch);
    }
    return sb.toString();
    }
    }

    package com.atguigu.crud.utils;

    import sun.misc.BASE64Decoder;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;

    import org.springframework.stereotype.Component

    @Component
    public class UploadImgTool {

    public static boolean generateImg(String imgData, String saveDirectory, String fileName) {
    File directroy = new File(saveDirectory);
    if (directroy.exists() == false) {
    directroy.mkdir();
    }
    if (imgData == null || imgData.length() == 0) {
    return false;
    }

    BASE64Decoder decoder = new BASE64Decoder();
    try {
    byte[] b = decoder.decodeBuffer(imgData);
    for (int i = 0; i < b.length; ++i) {
    if (b[i] < 0) {
    b[i] += 256;
    }
    }
    File target = new File(saveDirectory, fileName);
    OutputStream out = new FileOutputStream(target);
    out.write(b);
    out.flush();
    out.close();
    return true;
    } catch (Exception e) {
    return false;
    }
    }
    }

  • 相关阅读:
    (三)Java秒杀项目之实现秒杀功能
    多模块环境下修改包名Rename directory与Rename package
    pom.xml标签页名称
    mac终端命令
    @Select 数据表的字段与实体类的属性值
    Markedown换行
    链表问题-不开辟新空间
    Java机器学习框架(1)【待完成】
    奇妙的算法【3】- 贪心算法【待完成】
    奇妙的算法【2】- 韩信点兵问题优化
  • 原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14878077.html
Copyright © 2011-2022 走看看