Socket.io 延伸

项目正好用到了即时通讯功能,于是研究到了webSocket技术,后来发现了可以在web、[Android]、[iOS]上同时使用的解决方案,那就是SocketIO。其实现原理啥的不做介绍了,直接贴上IOS项目可能会用到的一些资源。

首先是官网:http://socket.io/ 这个大家都不会陌生吧~~

1、官方推荐的Android项目:http://socket.io/blog/native-socket-io-and-android/

github上的相应地址为:https://github.com/nkzawa/socket.io-android-chat

2、官方推荐的IOS--Swift项目:http://socket.io/blog/socket-io-on-ios/

github上的相应地址为:https://github.com/socketio/socket.io-client-swift

另外如果你需要oc版本的,可以参考这里:socket.io v0.7.2 — 0.9.x for iOS and OS X https://github.com/pkyeck/socket.IO-objc

3、官方推荐的C++项目:http://socket.io/blog/socket-io-cpp/

github上的相应地址为:https://github.com/socketio/socket.io-client-cpp

另外还有一个匿名的聊天室可以让你测试用:http://chat.socket.io/
// 关于配置的那些坑 及 WebSocket开发的原理

由于IOS端官网只有介绍Swift的代码,如果需要使用到OC版就需要在github下载非官方的版本,在与后台的各种折腾中,终于发现非官方的OC版本配置不兼容后台的需求,重新换了Swift官方版本才行,在OC项目中桥接Swift文件即可。

后台采用workman开源推送机制,将消息即时发送到客户端,原理和WebViewJavascriptBridge类似,据了解微信也是使用这种机制,只是框架可能有所不同,由于后台是开源服务器,所开发的难度并不大,只是时间成本的问题;

// 在使用key值时,需要与后台进行对应配置,

// 如下是指发送消息 根据“group chat” key值去指向服务器所对应的方法,将数据传递过去

socket.on("group chat") { (dataArray, socketAck) -> Void in

var messageDictionary = [String: AnyObject]() print("group chat dataArray = %@",dataArray) let messageDict = dataArray[0]; messageDictionary["username"] = messageDict["username"] messageDictionary["message"] = messageDict["message"] print("messageDictionary = %@",messageDictionary) completionHandler(messageInfo: messageDictionary) }

// 如下是监测服务器的通知 根据“disconnect” key值去调用所需要处理的对应方法即可

在配置的使用过程中,采用统一形式的回调Block形式即可,方法非常简洁,有问题欢迎留言




参考链接:
0.http://www.infoq.com/cn/news/2015/01/socket-io-websocket
1.http://www.jianshu.com/p/a7757baf3bad
2.http://www.imooc.com/article/3453
3.http://www.jianshu.com/p/f643d74e6732
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值