极光通讯用于java web即时通信---构建idea下maven+springboot第三方即时通讯

极光开发者文档:https://docs.jiguang.cn//jmessage/guideline/jmessage_guide/

项目需求开发java项目的过程中用websocket,由于websocket在负载等各方面的影响考虑使用第三方通讯框架集成到项目里。

了解极光通讯(极光 IM Web SDK + 极光 JMessage Java SDK)原理
极光通讯用于java web即时通信---构建idea下maven+springboot第三方即时通讯_第1张图片
实现思路:通过在web端注册用户,同时把server端用户设置为管理员用户admin,通过Java server 的sendMeaasge()实现admin向其他用户发送消息。实现后台向前端的消息推送的目的。同时可以利用极光提供的群聊天、聊天室的原理实现多个消息推送。

极光 IM Web SDK配置
下载SDK Web源码,进行初始化:
极光通讯用于java web即时通信---构建idea下maven+springboot第三方即时通讯_第2张图片
初始化重点是当前时间戳(timestamp)精确到毫秒,signature根据签名生成算法进行MD5加密。appkey是开发者在极光平台注册的IM应用appkey(这个很基础,设置正确就可以)。
初始化完成以后,进行注册登录用户等。

JMessage Java SDK配置
下载java SDK源码,配置appkey,masterSecrect。本项目中只用到了message模块,通过testSendSingleTextByadmin()是实现服务器端的admin用户像web端的用户发送消息。如下发送testConnection。

@RequestMapping(value = {"/testSendSingleTextByAdmin"}, method = RequestMethod.POST)
public NoteRequest testSendSingleTextByAdmin() {
        JMessageClient client = new JMessageClient(appkey, masterSecret);
        NoteRequest res = new NoteRequest();
        Data dataList=new Data();
        dataList.setKey("dataTestbyCheng");
        try {
            MessageBody body =MessageBody.text("testConnection");
            SendMessageResult result = client.sendSingleTextByAdmin("chengminjie2", "admin", body);
            LOG.info(String.valueOf(result.getMsg_id()));
        } catch (APIConnectionException e) {
            LOG.error("Connection error. Should retry later. ", e);
        } catch (APIRequestException e) {
            LOG.error("Error response from JPush server. Should review and fix it. ", e);
            LOG.info("HTTP Status: " + e.getStatus());
            LOG.info("Error Message: " + e.getMessage());
        }
        return res;
    }

集成springboot项目里
根据springboot的组织结构把java SDK和webSDK填充到项目里。值得注意的是maven里的pom引入的依赖跟官网上的不同,可能是版本没有即时更新。笔者引入的依赖为:

<dependency>
        <groupId>cn.jpush.api</groupId>
        <artifactId>jmessage-client</artifactId>
        <version>3.4.2</version>
    </dependency>
    <dependency>
        <groupId>cn.jpush.api</groupId>
        <artifactId>jiguang-common</artifactId>
        <version>1.1.4</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
    </dependency>

    <!-- For log4j -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

详细代码邮箱联系[email protected]

你可能感兴趣的:(即时通讯使用,极光即时通讯,解决问题,极光即时通讯,Java,web)