客户端反垃圾

Cocos2d-x SDK 1.1.0 版本开始提供客户端反垃圾功能,该服务需要用户在服务器开通并且通过管理后台配置反垃圾过滤词库,支持关键词和正则表达式两种方式。类nim::Tool中提供了文本替换了匹配的接口,在需要进行垃圾过滤时提前调用接口对文本进行处理。

文本替换

在词库lib_name中如果存在与文本text匹配的项则使用replace字符串进行替换,函数返回替换后的字符串。词库名是在管理后台配置的词库名称。

static std::string ReplaceTextMatchedKeywords(const std::string& text,const std::string& replace,const std::string& lib_name);

文本匹配

检查词库lib_name中是否存在与文本text相匹配的模式。

bool IsTextMatchedKeywords(const std::string& text, const std::string& lib_name)

发消息设置

消息的JSON对象中增加了client_anti_spam_hitting属性用来指示所发送内容是否命中了客户端发垃圾,该属性设置为1所发送内容到达服务器后不会再转发到消息接收方,设置为0或者不设置该属性与正常消息流程一致。

auto jsonMsg = nim::Talk::CreateTextMessage("id", nim::NIMSessionType::kNIMSessionTypeP2P, msgId, MSGCONTENT,setting);
Json::Value root;
Json::Reader reader;
reader.parse(jsonMsg, root);
root["client_anti_spam_hitting"] = 1;
jsonMsg = root.toStyledString();
nim::Talk::SendMsg(jsonMsg);