1. 程式人生 > >融雲即時通訊之直播聊天室

融雲即時通訊之直播聊天室

前言

   做直播當然少不了聊天功能,融雲直播聊天室支援訊息型別包括文字、語音、圖片、點贊、禮物、彈幕等,也支援通過自定義訊息實現自已的業務邏輯;支援聊天室使用者管理功能,包括建立、加入、銷燬、禁言、查詢、封禁(踢人)等;

開發指南

  前期準備

     建立應用

獲取Token

整合 SDK

環境要求

在您整合融雲 SDK 前環境要求如下:

  • Android SDK Build-tools 請升級到 21 及以上版本。
  • JAVA 編譯版本 JDK 1.7 及以上版本。

Android SDK 最低支援 Android API 15: Android 4.0.3。

匯入 SDK

以 Module 形式匯入前面下載的融雲 SDK 裡面的各個元件。

開啟您的工程, File -> New -> Import Module

新增配置

dependencies { compile project(':IMLib')}

開啟 IMLib Module 的 AndroidManifest.xml 檔案,把 meta-data RONG_CLOUD_APP_KEY 的值修改為您自己的 AppKey

初始化

在 Application 的 onCreate() 中,呼叫融雲初始化方法。

RongIMClient.init(getApplicationContext(),"appkey");

連線伺服器

RongIMClient.connect("Token", new RongIMClient.ConnectCallback() {
            @Override
            public void onTokenIncorrect() {
                Log.d(TAG, "onTokenIncorrect: ===>");
            }

            @Override
            public void onSuccess(String s) {
                Log.d(TAG, "onSuccess: ===>"+s.toString());
            }

            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {
                Log.d(TAG, "onError: ===>"+errorCode.toString());

            }
        });

建立聊天室

      RongIMClient.getInstance().joinChatRoom("聊天室id", -1, new RongIMClient.OperationCallback() {
            @Override
            public void onSuccess() {
                Log.d(TAG, "onSuccess: ===>"+"建立聊天室成功");
            }

            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {
                Log.d(TAG, "onError: ===>"+"建立聊天室失敗");

            }
        });

傳送訊息

    public  void sendMessage(final MessageContent msgContent) {

        Message msg = Message.obtain("聊天室id", Conversation.ConversationType.CHATROOM, msgContent);

        RongIMClient.getInstance().sendMessage(msg, null, null, new IRongCallback.ISendMessageCallback() {
            @Override
            public void onAttached(Message message) {

            }

            @Override
            public void onSuccess(Message message) {
                tv_show.setText("傳送成功");

            }

            @Override
            public void onError(Message message, RongIMClient.ErrorCode errorCode) {
                tv_show.setText("傳送失敗");

            }
        });
    }

接收訊息

  RongIMClient.setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageListener() {
            @Override
            public boolean onReceived(Message message, int i) {
                Log.d(TAG, "onReceived: ===>"+"接收訊息");
              
                return false;
            }
        });

遇到的問題

   在7.0以上的手機上,呼叫connect方法不回撥:

兩種解決方案:

(1)把targetSdkVersion改小於24。

(2)apk中帶上需要的so檔案