iOS Client 与WebSocket 通信(二)(转)

我的地址: http://blog.csdn.net/jinglijun/article/details/9367023

上一篇我们了解下有关网络通信的一些基础知识,这篇我们就具体实践下。

实践之前我们先搭建一下本次demo的环境。

1.首先去node js 官网安装node js环境

安装完成如下:


安装完成 打开终端 输入 : node  -v

安装完成 打开终端 输入 : node  -v

log输出:v0.10.13.

这就证明你的node环境好了。

2..在socket io 官网下载下载socket io的例子,直接copy保存为js文件就好,取名为app.js。


3. 把你新建的app.js copy到 刚才node js 安装的目录下

/usr/local/lib目录下,注意这个目录是系统隐藏的目录

4.打开终端cd 到这个目录下 输入:node  app.js

看看会不会报错。正常情况下是

输出:  info  -  socket. io  started

如果报错那就可能还缺少2个插件,express 和 ejs

分别输入 :sudo npm install express

sudo npm install ejs


然后再次运行node  app.js

就看见输出:  info  -  socket. io  started

下面这边websocket的环境已经ok了。

然后就看iOS这边的了。 在github 下载我的demo app 然后直接运行就好了,可以看见下面的效果了。

具体代码重点是初始化一个socketio的对象,然后实现他的delegate:

socketIO = [[SocketIO alloc] initWithDelegate:self];

//socketIO.useSecure = YES;

[socketIO connectToHost:@"localhost" onPort:8127];

然后在发送就条用这个方法:

-(void)sendMessageToWebSocket:(NSString *)str

{

SocketIOCallback cb = ^(id argsData) {

NSDictionary *response = argsData;

// do something with response

NSLog(@"ack arrived: %@", response);

};

[socketIO sendMessage:str withAcknowledge:cb];

}

客户端接受到消息

- (void) socketIO:(SocketIO *)socket didReceiveEvent:(SocketIOPacket *)packet

{

NSLog(@"didReceiveEvent()");

NSString *receiveData=packet.data;

NSData *utf8Data = [receiveData dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *dictemp=(NSDictionary *)[SocketIOJSONSerialization objectFromJSONData:utf8Data error:nil];

NSDictionary *aadic=(NSDictionary *)[[dictemp objectForKey:@"args"] objectAtIndex:0];

NSString * temp = [aadic objectForKey:@"text"];

NSLog(@"temp==%@",temp);

if (![temp isEqualToString:@"connectok"]) {

[self.messages addObject:temp];

if((self.messages.count - 1) % 2)

[MessageSoundEffect playMessageSentSound];

else

[MessageSoundEffect playMessageReceivedSound];

[self finishSend];

}

}


Demo下载地址
原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 7,278评论 1 37
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,403评论 30 472
  • nest:www.nest-simulator.orgnest是一个神经网络仿真的工具,可以作为PyNN的Simu...
    晓二爷阅读 4,592评论 0 0
  • 今天家里的“小恶魔”四点多醒来不睡,现在陪他玩了快三个小时,已睡眼朦胧。昨晚加今早整理好了500天微信笔记书的第二...
    茉莉大大阅读 2,224评论 0 0
  • 临摹
    严大敏啊阅读 1,603评论 0 0

友情链接更多精彩内容