使用webSocket实现简单的通信(一)

步骤一:编写java文件

package com.qf.websocket;


import com.google.gson.Gson;

import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@ServerEndpoint("/websocket/{name}")
public class controller {

    private String name;
    private Session session;

     private static Map allClients =  new ConcurrentHashMap();
     private static Map> listClients = new ConcurrentHashMap>();
     private List list = new ArrayList();
    @OnOpen
     public void onOpen(@PathParam("name") String name, Session session){
        System.out.println("链接建立了");
        this.name = name;
        this.session = session;
//        list.add(session);
        allClients.put(name,session);
//        listClients.put("hunziqun",list);
    }

    @OnMessage
    public void onMessage(Session session ,String message){

        System.out.println("收到消息了==============>" + message);
        Map map = new Gson().fromJson(message, Map.class);
        String to = map.get("to");
        String content = map.get("content");
        if(to!=null){
            Session session1 = allClients.get(to);
            if(session1 !=null && session1.isOpen()){
                session1.getAsyncRemote().sendText("来自 "+name+" 的消息是:"+content);
            }else {
                session.getAsyncRemote().sendText("对方不在线");
            }

        }

    }

    @OnError
    public void onError(Session session,Throwable t){
            try {
                if(session.isOpen()) {
                    session.close();
                }
                allClients.remove(name);
            } catch (IOException e) {
                e.printStackTrace();
            }
    }

    @OnClose
    public void onClose(Session session){
        allClients.remove(name);
        System.out.println("链接关闭了");
    }




}

步骤二:编写前端文件




    
    Title

    



   用户名  
接受者
发送内容








>

步骤三:补上jar包



    4.0.0

    com.qf
    webSocket_two
    pom
    1.0
    
        webSocketBasic
    



你可能感兴趣的:(webSocket)