1.服务选择
项目中需要使用即时通讯机制,但是现在的即时通讯服务提供商确实不少,也让我们这些“选择困难症”的人非常头疼。查了下,主流的即时通讯提供者,主要由环信、融云、网易云信、阿里百川等,也通过百度查询了他们之间的区别,但是具体怎样,还是要自己试一试。
这里给出各大平台的地址:
融云:http://www.rongcloud.cn/
容联:http://www.yuntongxun.com/
环信:http://www.easemob.com/
网易:http://netease.im/
2.方案确定
由于阿里悟空使用了免注册的用户导入方式,这确实是一个巨大的优势。我们就决定使用阿里悟空了。
登录部分示例代码:
3.方案修正
但是阿里悟空存在一个问题,默认界面太丑了!而我们却又懒得修改界面,懒人没办法啊,最后查了一下,发现阿里百川提供了EasyUI,当然其他的几家也有,不过我们就是觉得阿里百川的界面比较好看,就觉得可以使用阿里百川替换我们的即时通讯服务了。哎,没办法,颜值很重要啊。现在,阿里悟空已经下架了,我们是不得不切换新的即时通讯框架。
阿里百川是需要在服务端注册用户的,显然是麻烦一些的:
项目中需要使用即时通讯机制,但是现在的即时通讯服务提供商确实不少,也让我们这些“选择困难症”的人非常头疼。查了下,主流的即时通讯提供者,主要由环信、融云、网易云信、阿里百川等,也通过百度查询了他们之间的区别,但是具体怎样,还是要自己试一试。
这里给出各大平台的地址:
融云:http://www.rongcloud.cn/
容联:http://www.yuntongxun.com/
环信:http://www.easemob.com/
网易:http://netease.im/
2.方案确定
由于阿里悟空使用了免注册的用户导入方式,这确实是一个巨大的优势。我们就决定使用阿里悟空了。
登录部分示例代码:
private void loginWukong(ALoginParam param, final String nickname){
AuthService.getInstance().login(param, new Callback<AuthInfo>() {
@Override
public void onSuccess(AuthInfo authInfo) {
DemoUtil.dismissProgressDialog();
AndTools.showToast(mActivity, R.string.login_success);
AuthService.getInstance().setNickname(nickname);
startActivity(new Intent(mActivity, MainActivity.class));
mActivity.finish();
}
@Override
public void onException(String code, String reason) {
DemoUtil.dismissProgressDialog();
AndTools.showToast(getActivity(), R.string.login_failed + " " + reason);
}
@Override
public void onProgress(AuthInfo authInfo, int i) {
}
});
}
3.方案修正
但是阿里悟空存在一个问题,默认界面太丑了!而我们却又懒得修改界面,懒人没办法啊,最后查了一下,发现阿里百川提供了EasyUI,当然其他的几家也有,不过我们就是觉得阿里百川的界面比较好看,就觉得可以使用阿里百川替换我们的即时通讯服务了。哎,没办法,颜值很重要啊。现在,阿里悟空已经下架了,我们是不得不切换新的即时通讯框架。
阿里百川是需要在服务端注册用户的,显然是麻烦一些的:
public static boolean addUser(long userId, String nickName, String iconPath) {
OpenimUsersAddRequest add = new OpenimUsersAddRequest();
add.setUserinfos(getUserInfos(userId, nickName, iconPath));
OpenimUsersAddResponse resp = (OpenimUsersAddResponse) connectServer(add);
if (resp == null)
return false;
List<String> result = resp.getUidSucc();
if (result != null)
for (String item : result)
if (item.equals(getUserName(userId)))
return true;
// 添加失败,有可能是用户已经存在
return updateUser(userId, nickName, iconPath);
return true;
}
具体细节参考阿里百川官网:http://baichuan.taobao.com/