您尚未登录

登录

推荐您使用PC浏览器访问

确定
  • 开发者中心
  • >
  • 云游戏
  • >
  • SDK开发指南
  • >
  • 云游戏基础SDK
  • >
  • Message
  • >
  • v1.2

Message SDK 开发指南

海马云游戏 - messageSDK 开发指南

1 SDK概述

海马云游戏消息SDK与客户端SDK为移动应用提供一个完善的云游戏消息传输的系统解决方案,对外提供了较为简洁的API接口,方便第三方应用快速集成。

本SDK提供的能力如下:

  • (1) 消息SDK和游戏一起运行在海马云操作系统的云实例中,负责和客户端SDK进行双向通信。
  • (2) 消息SDK也可以在手机上运行并不影响游戏的功能。

2 SDK集成准备

2. 1 导入SDK

将jar文件拷贝到集成工程的app/libs目录下,并在app Module的build.gradle文件中,添加repositories和dependencies,并且添加所需依赖库,如下所示:

repositories {
    flatDir {
        dirs 'libs'
  }
}

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile files('libs/MessageSDK.jar') 
}

注:其中MessageSDK.jar是海马的消息SDK。

2.2 配置权限

<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>

注:andriod 6.0之后,权限获取有所变动,请参考官网:
https://developer.android.com/training/permissions/requesting.html

2.3 混淆配置

请避免混淆海马SDK,在Proguard混淆文件中增加以下配置:

-keep class com.cloudplay.messagesdk.MessageSDK{ public *;}
-keep class com.cloudplay.messagesdk.entity.** {*;}
-keep class com.cloudplay.messagesdk.okhttputils.** {*;}
-keep class com.cloudplay.messagesdk.okhttp3.** {*;}
-keep class com.cloudplay.messagesdk.okio.** {*;}
-keep class com.cloudplay.messagesdk.socket.** {*;}
-keep class com.cloudplay.messagesdk.jackson.** {*;}
-keep class com.cloudplay.messagesdk.autobahn.** {*;}

3 SDK集成

3.1 获取messageSDK实例

MessageSdk mInstance = MessageSdk.getInstance(String pkgName, String accessKeyId);

注:messageSDK是singleton的,全局可获取MessageSDK实例发送和接收消息。

  • pkgName:当前集成SDK的应用包名。
  • accessKeyId:海马云操作系统分配的唯一ID,类型(字符串)。

3.2 开启Log

void setDebug(boolean debug);

注:初始化后,调用该函数,参数为true后,可看到SDK的相关log,便于调试。

3.3 判断是否运行在海马云游戏实例中

boolean isRunningCloud();

注:消息SDK在海马云实例中才可以正常工作。

3.4 获取透传数据

public String getConfigInfo()

3.5 设置接收消息的Handler

mInstance.setMessageHandler(new MessageHandler() {
    @Override    
    public void onReceiveMessage(MessageInfo messageInfo) {  
        Log.w(“recevice”, messageInfo.getMid() + ";" + messageInfo.getPayload());    
    }  
});

注:海马云操作系统发送消息到SDK,SDK接收到消息后,通过MessageHandler返回MessageInfo到App。

public class MessageInfo {    
    private String mid; //消息ID,根据发送消息的时间,产生的消息唯一标识id。   
  private String payload; //消息内容  
}

3.6 发送消息

MessageInfo info = mInstance.sendMessage("messageContent", new SendListener() {    
    @Override    
    public void sendResult(boolean success, String mid) {
  }  
});

注:

  • messageContent:当前发送的消息内容,类型为String。
  • SendListener:消息发送结果回调sendResult,mid消息id,success 等于 true为发送成功。
  • mid:发送消息时,SDK返回一个消息的MessageInfo,MessageInfo中包含消息id,当消息发送失败时,返回失败消息的id,app可根据情况,通过id去标识消息,决定是否重新发送该id的消息。

3.7 关闭消息SDK长连接

mInstance.disConnect();

注:关闭消息SDK的长连接。

4 注意事项

  • 消息SDK在海马云实例中才可以正常工作。
  • 消息SDK初始化时,建立了与海马云操作系统的长连接,退出游戏时关闭长连接,释放资源。
×

本篇文章对你是否有帮助?

更多建议

请输入您的建议