项目正好用到了即时通讯功能,于是研究到了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
 

Socket.io 延伸的更多相关文章

  1. 在web浏览器上显示室内温度(nodeJs+arduino+socket.io)

    上次的nodejs操作arduino入门篇中实现了如何连接arduino.这次我们来实现通过arduino测量室内温度并在浏览器上显示出来. [所需材料] 硬件:LM35温度传感器,arduino u ...

  2. Node学习笔记(三):基于socket.io web版你画我猜(二)

    上一篇基础实现的功能是客户端canvas作图,导出dataURL从而实现图片信息推送,下面具体讲下服务端的配置及客户端的配置同步 首先先画一个流程图,讲下大概思路 <canvas id=&quo ...

  3. node.js+socket.io配置详解

    由于我是在win7的环境下,在这里就以win7系统为例进行讲解了. 首先需要在nodejs官网下载最新版的node.js,下载完毕直接安装即可,安装成功后在cmd命令行中执行node指令,如下结果就说 ...

  4. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  5. socket.io简单入门(一.实现简单的图表推送)

    引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...

  6. websocket与socket.io

    什么是Websocket? Websocket是一个独立于http的实时通信协议,最初是在HTML5中被引用进来的,在HTML5规范中作为浏览器与服务器的核心通信技术被嵌入到浏览器中.WebSocke ...

  7. socket.io安装部署

    需要node.js环境 创建package.json npm init 下载相关依赖 npm install --save express@4.10.2npm会在当前目录下载所需要的依赖到node_m ...

  8. Node.js、Express、Socket.io 入门

    前言 周末断断续续的写了第一个socket.io Demo.初次接触socket.io是从其官网看到的,看着get started做了一遍,根据官网的Demo能提供简单的服务端和客户端通讯. 这个De ...

  9. socket.io,io=Manager(source, opts)

    原文:http://www.cnblogs.com/xiezhengcai/p/3968067.html 当我们在使用 var socket = io("ws://103.31.201.15 ...

随机推荐

  1. 中文格式python 打印json格式的数据中文显示问题

    废话就不多说了,开始... 平日会有这么一个应用场景,会用python去处置json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/ ...

  2. C语言之全局变量和局部变量

    全局变量和局部变量的简介(tips:很重要 牢记) 全局变量:就是定义在函数外的变量 全局变量可以在任意函数中使用 生命周期:程序一启动就开辟空间,直到程序退出才回收 全局变量不允许同名 局部变量:就 ...

  3. webpack入门必知必会

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 这是我第一篇介绍webpack的文章,先从一个入门教程开始吧,后续会有更多相关webpack的文章推 ...

  4. CSS align-content 属性

    实例 对齐弹性盒的 <div> 元素的各项: div { display: flex; flex-flow: row wrap; align-content:space-around; } ...

  5. php bin/console doctrine:migrations:migrate

    $ php bin/console doctrine:migrations:migrate                    XinXiBundleMigrationsWARNING! You a ...

  6. Codeforces Round #386 (Div. 2)

    迟到的一次比赛 最近状态很崩溃 网速很慢 然后前面五题看了都有打 但是 只有A B E 是过了的 是时候要反省一下 A.随便判断一下就好 最少的份数嘛 B.画出来之后是一下子左边一下子右边 打一个递归 ...

  7. case a.ass_term_unit when '01' then (case a.ass_profit_mode when '0' then round(sum(a.ass_amount*a.ass_annual_rate/365*365*a.ass_term/100) ,2) when '1' then round(sum(a.ass_amount*a.ass_annual_rate/

    --01 年 02 月 03 日 select a.ass_due_date, case a.ass_term_unit when '01' then (case a.ass_profit_mode ...

  8. 研究表明,VR社交有助于内向者改变性格

    目前,外界对于VR的普遍观点是这种头显提供了一种孤立的.反社会性的体验.但很少有人会意识到,虚拟现实同时也存在着能够增进人与人之间的关系的可能性. Facebook(脸书)IQ是人们连接这一社交网络的 ...

  9. YUM变量

    有一个简单的python命令可以看到yum的 releaserver.arch.basearch的值 /usr/bin/python -c 'import yum, pprint; yb = yum. ...

  10. (转载)html中div使用自动高度

    为什么要使用div标签 1.更多的配置项,那就意味着更灵活,当然,难度也更高: 2.可以方便的容纳其他html标签:     static定位就是不定位,出现在哪里就显示在哪里,这是默认取值,只有在你 ...