最近要做一个手机应用,需要支持多种平台,WM,WP7,Android,iPhone,(MeeGo)etc.
需要和服务器通信,服务器端使用微软的.net实现,因为公司目前的人手几乎都是搞.net的。而手机端的实现就各不相同了……要求的几个功能我发觉跟QQ很像,所以我在标题上写上了“类似QQ”。0,最重要的一点,客户端跨平台,所以集中在协议定制上
1,信息加密,而不是像MSN那样明文传输内容
2,支持登录认证
3,主要是和服务器通信,暂时不考虑客户端对客户端(这点和QQ不太一样)
4,支持文本传输,二进制流传输,较大文件传输等,且效率较高
5,精简,不要引入大规模的库看了下ACE,Boost,发现都太庞大了点,代码也不是很好理解,更重要的,并非所有平台都支持,据说QQ用的是自己的协议,使用TEA加密,所以难度不高的话很想自己实现一套,用RSA/AES之类实现加密等。谁有这方面的经验的,请分享一下,谢谢各位。BTW:希望能得到“经验分享”而不是ctrl+c ctrl+v,如果对我的项目帮助较大,我继续加分。
需要和服务器通信,服务器端使用微软的.net实现,因为公司目前的人手几乎都是搞.net的。而手机端的实现就各不相同了……要求的几个功能我发觉跟QQ很像,所以我在标题上写上了“类似QQ”。0,最重要的一点,客户端跨平台,所以集中在协议定制上
1,信息加密,而不是像MSN那样明文传输内容
2,支持登录认证
3,主要是和服务器通信,暂时不考虑客户端对客户端(这点和QQ不太一样)
4,支持文本传输,二进制流传输,较大文件传输等,且效率较高
5,精简,不要引入大规模的库看了下ACE,Boost,发现都太庞大了点,代码也不是很好理解,更重要的,并非所有平台都支持,据说QQ用的是自己的协议,使用TEA加密,所以难度不高的话很想自己实现一套,用RSA/AES之类实现加密等。谁有这方面的经验的,请分享一下,谢谢各位。BTW:希望能得到“经验分享”而不是ctrl+c ctrl+v,如果对我的项目帮助较大,我继续加分。
解决方案 »
- android如何能定时下载东西?
- 在android2.2中如何在drawable-hdpi/ldpi/mdpi下建二级目录让图片分类存放,并在xml中得到资源
- 推荐几本android的书籍
- 一段很简单的例子程序带来的疑惑。
- 请教一个布局问题。。。
- android 连连看 怎么来设置关卡难度
- 如何从网上下一个jpg,然后设置到ImageView里面去
- androie新手的求助
- makefile文件中指令问题
- com.android.camera.action.CROP返回之后data.getData()为空
- 关于onFling的问题
- 求解:Android中android:layout_width与android:width有什么区别?
如果抛开SOAP协议,建议也可以采用HTTP协议,因为ANDROID上已经封装了 apache 的HTTP CLIENT库了,不需要像SOAP那样采用第三方库或者重复开发。你所罗列的几点,支持加密,认证,文本和二进制流传输,实际都已经被HTTP协议实现了。
建议LZ就考虑用HTTP协议吧。
1. 基于COOKIE的 Credential 验证机制,需要服务器和客户端双方实现。
2. 基于 WWW-Authenticate 头的BASE64位验证机制,这个只需要服务器方实现,但是因为基于明文传输,不是很建议这种方式。
每个手机端(手机平台)用相应的工具和语言开发。
协议,完全可以自定义啊。
lz有过socket开发的经验,这个应该很容易搞定~~~
用soap传输二进制流的话得转码,你认为效率如何?
apache 的HTTP CLIENT在别的平台下也能用吗?
差不多如你所说,我以前弄过网络游戏通信,但由于是小游戏,扩展性并不怎么好,也没有使用密钥交换,只是用对称加密包装了一下。而QQ这是个不错的东西,感觉。
SOAP传输二进制流,然后转码,我现在的公司就在使用这个机制在客户端和服务端交换数据。不过从效率上讲,我觉得不行,现在公司的CRM产品的瓶颈很大一部分程度就是在SOAP的网络IO传输过程上。 当然,未必是算法的效率慢,也有可能是服务器,数据库等等因素的综合结果。事实上,在国外,SOAP已经被认为是一种过于复杂的协议而正在被一些业界反思。见 LinkedIn:
http://www.linkedin.com/news?actionBar=&articleID=545598811&ids=0OdzkQdzcRd3kIcjAUcz8TdjgRb34OdjsMdzkQdiMNcjwUejkRd3kIczcQd3ATdjgR&aag=true&freq=weekly&trk=eml-tod-b-ttle-4另外 - “apache 的HTTP CLIENT在别的平台下也能用吗”。 是的,只要该平台支持JAVA。
谢谢回答,但要用户在他们的手机中部署Java运行环境似乎并不怎么好,我们的程序并不大,必须给用户非常良好的安装和使用体验,我曾经做过Windows Mobile平台上的开发,程序要求用户安装Compact Framwork,结果过半用户都不理解,甚至很多用户因此放弃了我们的程序。to DrSmart
用.net做服务器是肯定的了,公司只有.net的人手(除了我)。
我也希望跟你说的那么简单……