Skip to content
This repository has been archived by the owner on Oct 12, 2021. It is now read-only.

send message with IMessage #11

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.vs/
obj/
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ server-sdk-dotnet
Rong Cloud Server SDK in dotnet.

# 版本说明
为方便开发者的接入使用,更好的对融云 Server SDK 进行维护管理,融云 Server SDK 新版本统一规范了命名及调用方式,结构更加清晰。老版本的 Server SDK 已经切入v1分支,仍然可以使用,但不会再做新的功能更新。
如果您是新接入的开发者,建议您使用 Server SDK 最新版本。 对已集成使用老版本 Server SDK 的开发者,不能直接升级使用,强烈建议您重新测试后使用
为方便开发者的接入使用,更好的对融云 Server SDK 进行维护管理,融云 Server SDK 新版本统一规范了命名及调用方式,结构更加清晰。
# API文档
- 官方文档(http://www.rongcloud.cn/docs/server.html)

Expand Down
1 change: 1 addition & 0 deletions io.rong.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
<None Include="UserTag.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<Compile Include="io\rong\messages\IMessage.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="io\rong\Example.cs" />
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/CmdMsgMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 通用命令通知消息。此类型消息没有 Push 通知。此类型消息没有 Push 通知,与通用命令通知消息的区别是不存储、不计数。
*
*/
public class CmdMsgMessage {
public class CmdMsgMessage :IMessage {
[JsonProperty]
private String name = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/CmdNtfMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 通用命令通知消息。此类型消息没有 Push 通知。
*
*/
public class CmdNtfMessage {
public class CmdNtfMessage :IMessage {
[JsonProperty]
private String name = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/ContactNtfMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 添加联系人消息。
*
*/
public class ContactNtfMessage {
public class ContactNtfMessage :IMessage {
[JsonProperty]
private String operation = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/CustomTxtMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 自定义消息
*
*/
public class CustomTxtMessage {
public class CustomTxtMessage :IMessage {
[JsonProperty]
private String content = "";
private static String TYPE = "RC:TxtMsg";
Expand Down
10 changes: 10 additions & 0 deletions io/rong/messages/IMessage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System;
namespace donet.io.rong.messages
{
public interface IMessage
{
String getType();

String toString();
}
}
2 changes: 1 addition & 1 deletion io/rong/messages/ImgMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 图片消息。
*
*/
public class ImgMessage {
public class ImgMessage : IMessage {
[JsonProperty]
private String content = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/ImgTextMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 图文消息。
*
*/
public class ImgTextMessage {
public class ImgTextMessage : IMessage {
[JsonProperty]
private String content = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/InfoNtfMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 提示条(小灰条)通知消息。此类型消息没有 Push 通知。
*
*/
public class InfoNtfMessage {
public class InfoNtfMessage :IMessage {
[JsonProperty]
private String message = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/LBSMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 位置消息。
*
*/
public class LBSMessage {
public class LBSMessage:IMessage {
[JsonProperty]
private String content = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/ProfileNtfMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 资料通知消息。此类型消息没有 Push 通知。
*
*/
public class ProfileNtfMessage {
public class ProfileNtfMessage:IMessage {
[JsonProperty]
private String operation = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/TxtMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 文本消息。
*
*/
public class TxtMessage {
public class TxtMessage :IMessage {
[JsonProperty]
private String content = "";
[JsonProperty]
Expand Down
2 changes: 1 addition & 1 deletion io/rong/messages/VoiceMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace donet.io.rong.messages {
* 语音消息。
*
*/
public class VoiceMessage {
public class VoiceMessage :IMessage {
[JsonProperty]
private String content = "";
[JsonProperty]
Expand Down
34 changes: 17 additions & 17 deletions io/rong/methods/Message.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public Message(String appKey, String appSecret) {
*
* @param fromUserId:发送人用户 Id。(必传)
* @param toUserId:接收用户 Id,可以实现向多人发送消息,每次上限为 1000 人。(必传)
* @param voiceMessage:消息。
* @param message:消息。
* @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息。如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选)
* @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选)
* @param count:针对 iOS 平台,Push 时用来控制未读消息显示数,只有在 toUserId 为一个用户 Id 的时候有效。(可选)
Expand All @@ -41,7 +41,7 @@ public Message(String appKey, String appSecret) {
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut publishPrivate(String fromUserId, String[] toUserId, VoiceMessage message, String pushContent, String pushData, String count, int verifyBlacklist, int isPersisted, int isCounted, int isIncludeSender) {
public CodeSuccessReslut publishPrivate(String fromUserId, String[] toUserId, IMessage message, String pushContent, String pushData, String count, int verifyBlacklist, int isPersisted, int isCounted, int isIncludeSender) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down Expand Up @@ -97,21 +97,21 @@ public CodeSuccessReslut publishTemplate(TemplateMessage templateMessage) {
postStr = JsonConvert.SerializeObject(templateMessage);
return (CodeSuccessReslut) RongJsonUtil.JsonStringToObj<CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI+"/message/private/publish_template.json", postStr, "application/json" ));
}

/**
* 发送系统消息方法(一个用户向一个或多个用户发送系统消息,单条消息最大 128k,会话类型为 SYSTEM。每秒钟最多发送 100 条消息,每次最多同时向 100 人发送,如:一次发送 100 人时,示为 100 条消息。)
*
* @param fromUserId:发送人用户 Id。(必传)
* @param toUserId:接收用户 Id,提供多个本参数可以实现向多人发送消息,上限为 1000 人。(必传)
* @param txtMessage:发送消息内容(必传)
* @param message:发送消息内容(必传)
* @param pushContent:如果为自定义消息,定义显示的 Push 内容,内容中定义标识通过 values 中设置的标识位内容进行替换.如消息类型为自定义不需要 Push 通知,则对应数组传空值即可。(可选)
* @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。如不需要 Push 功能对应数组传空值即可。(可选)
* @param isPersisted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。(可选)
* @param isCounted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行未读消息计数,0 表示为不计数、 1 表示为计数,默认为 1 计数,未读消息数增加 1。(可选)
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut PublishSystem(String fromUserId, String[] toUserId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted) {
public CodeSuccessReslut PublishSystem(String fromUserId, String[] toUserId, IMessage message, String pushContent, String pushData, int isPersisted, int isCounted) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down Expand Up @@ -164,13 +164,13 @@ public CodeSuccessReslut publishSystemTemplate(TemplateMessage templateMessage)
postStr = JsonConvert.SerializeObject(templateMessage);
return (CodeSuccessReslut) RongJsonUtil.JsonStringToObj<CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI+"/message/system/publish_template.json", postStr, "application/json" ));
}

/**
* 发送群组消息方法(以一个用户身份向群组发送消息,单条消息最大 128k.每秒钟最多发送 20 条消息,每次最多向 3 个群组发送,如:一次向 3 个群组发送消息,示为 3 条消息。)
*
* @param fromUserId:发送人用户 Id 。(必传)
* @param toGroupId:接收群Id,提供多个本参数可以实现向多群发送消息,最多不超过 3 个群组。(必传)
* @param txtMessage:发送消息内容(必传)
* @param message:发送消息内容(必传)
* @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选)
* @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选)
* @param isPersisted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。(可选)
Expand All @@ -179,7 +179,7 @@ public CodeSuccessReslut publishSystemTemplate(TemplateMessage templateMessage)
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut publishGroup(String fromUserId, String[] toGroupId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender) {
public CodeSuccessReslut publishGroup(String fromUserId, String[] toGroupId, IMessage message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down Expand Up @@ -215,13 +215,13 @@ public CodeSuccessReslut publishGroup(String fromUserId, String[] toGroupId, Tx

return (CodeSuccessReslut) RongJsonUtil.JsonStringToObj<CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI+"/message/group/publish.json", postStr, "application/x-www-form-urlencoded" ));
}

/**
* 发送讨论组消息方法(以一个用户身份向讨论组发送消息,单条消息最大 128k,每秒钟最多发送 20 条消息.)
*
* @param fromUserId:发送人用户 Id。(必传)
* @param toDiscussionId:接收讨论组 Id。(必传)
* @param txtMessage:发送消息内容(必传)
* @param message:发送消息内容(必传)
* @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选)
* @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData.(可选)
* @param isPersisted:当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息.(可选)
Expand All @@ -230,7 +230,7 @@ public CodeSuccessReslut publishGroup(String fromUserId, String[] toGroupId, Tx
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut publishDiscussion(String fromUserId, String toDiscussionId, TxtMessage message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender) {
public CodeSuccessReslut publishDiscussion(String fromUserId, String toDiscussionId, IMessage message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down Expand Up @@ -262,17 +262,17 @@ public CodeSuccessReslut publishDiscussion(String fromUserId, String toDiscussi

return (CodeSuccessReslut) RongJsonUtil.JsonStringToObj<CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI+"/message/discussion/publish.json", postStr, "application/x-www-form-urlencoded" ));
}

/**
* 发送聊天室消息方法(一个用户向聊天室发送消息,单条消息最大 128k。每秒钟限 100 次。)
*
* @param fromUserId:发送人用户 Id。(必传)
* @param toChatroomId:接收聊天室Id,提供多个本参数可以实现向多个聊天室发送消息。(必传)
* @param txtMessage:发送消息内容(必传)
* @param message:发送消息内容(必传)
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut publishChatroom(String fromUserId, String[] toChatroomId, TxtMessage message) {
public CodeSuccessReslut publishChatroom(String fromUserId, String[] toChatroomId, IMessage message) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down Expand Up @@ -303,19 +303,19 @@ public CodeSuccessReslut publishChatroom(String fromUserId, String[] toChatroom

return (CodeSuccessReslut) RongJsonUtil.JsonStringToObj<CodeSuccessReslut>(RongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI+"/message/chatroom/publish.json", postStr, "application/x-www-form-urlencoded" ));
}

/**
* 发送广播消息方法(发送消息给一个应用下的所有注册用户,如用户未在线会对满足条件(绑定手机终端)的用户发送 Push 信息,单条消息最大 128k,会话类型为 SYSTEM。每小时只能发送 1 次,每天最多发送 3 次。)
*
* @param fromUserId:发送人用户 Id。(必传)
* @param txtMessage:文本消息。
* @param message:文本消息。
* @param pushContent:定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知.(可选)
* @param pushData:针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选)
* @param os:针对操作系统发送 Push,值为 iOS 表示对 iOS 手机用户发送 Push ,为 Android 时表示对 Android 手机用户发送 Push ,如对所有用户发送 Push 信息,则不需要传 os 参数。(可选)
*
* @return CodeSuccessReslut
**/
public CodeSuccessReslut broadcast(String fromUserId, TxtMessage message, String pushContent, String pushData, String os) {
public CodeSuccessReslut broadcast(String fromUserId, IMessage message, String pushContent, String pushData, String os) {

if(fromUserId == null) {
throw new ArgumentNullException("Paramer 'fromUserId' is required");
Expand Down