洪城义警-正式版后台
zengh
2022-02-22 7a852f6db3d9bb3908d55f0a49ff9e92b4062621
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package org.springblade.modules.webscoket.service.impl;
 
import com.alibaba.fastjson.JSONObject;
import io.netty.channel.Channel;
import io.netty.channel.group.ChannelGroup;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import org.springblade.modules.nettyServer.NettyConfig;
import org.springblade.modules.webscoket.service.IPushMsgService;
import org.springframework.stereotype.Service;
 
/**
 * @author lq
 * @date 2020/4/1 11:20
 */
@Service
public class PushMsgServiceImpl implements IPushMsgService {
    @Override
    public void pushMsg(String userId, String msg) {
        Channel channel = NettyConfig.getUserChannelMap().get(userId);
        if (channel != null) {
            channel.writeAndFlush(new TextWebSocketFrame(msg));
        }
 
    }
 
    @Override
    public void pushMsg(String msg) {
        ChannelGroup group = NettyConfig.getChannelGroup();
        String name = group.name();
        System.out.println("空间大小:" + group.size() + ",名字:" + name);
        group.writeAndFlush(new TextWebSocketFrame(msg));
    }
 
    @Override
    public int inviteVideoCall(String userId, String time, String type, String name,String faqiid) {
        //返回值
        int res = 0;
        Channel channel = NettyConfig.getUserChannelMap().get(userId);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("type", type);
        jsonObject.put("roomId", time);
        jsonObject.put("name", name);
        jsonObject.put("faqiid", faqiid);
        if (channel != null) {
            channel.writeAndFlush(new TextWebSocketFrame(String.valueOf(jsonObject)));
            res = 1;
        }
        return res;
    }
 
    @Override
    public int startTask(String serid, String rid,String type,String data) {
        //返回值
        int res = 0;
        String[] list = serid.split(",");
        for (int i = 0; i <list.length ; i++) {
            if (!list[i].equals("")){
                Channel channel = NettyConfig.getUserChannelMap().get(list[i]);
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("type", type);
                jsonObject.put("rid", rid);
                jsonObject.put("data", data);
                if (channel != null) {
                    channel.writeAndFlush(new TextWebSocketFrame(String.valueOf(jsonObject)));
                    res = 1;
                }
            }
        }
        return res;
    }
 
    @Override
    public void closeVideoCall(String sentId, String acceptId) {
        Channel channel1 = NettyConfig.getUserChannelMap().get(sentId);
        Channel channel2 = NettyConfig.getUserChannelMap().get(acceptId);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("type", "close");
        if (channel1 != null) {
            channel1.writeAndFlush(new TextWebSocketFrame(String.valueOf(jsonObject)));
        }
        if (channel2 != null) {
            channel2.writeAndFlush(new TextWebSocketFrame(String.valueOf(jsonObject)));
        }
 
    }
}