2016-01-11 92 views
0

我刚开始使用socket.io为我的客户端和Node.js服务器端构建服务器。在客户端和服务器端无法使用socket.io连接到服务器

我正在写一个Objective-c项目,所以我通过调整我的项目的过程中走使用Swift一起与Objective-c这是一个痛苦的,但现在看来是好的。

事情是,当我尝试做一个简单的连接到我的服务器,打印登录每个连接,没有任何反应。

这是服务器(从here两者)​​代码:

var fs = require('fs') 
    , http = require('http') 
    , socketio = require('socket.io'); 

var server = http.createServer(function(req, res) { 
    res.writeHead(200, { 'Content-type': 'text/html'}); 
}).listen(8080, function() { 
    console.log('Listening at: http://localhost:8080'); 
}); 

socketio.listen(server).on('connection', function (socket) { 
    console.log('Connected'); 
    socket.on('message', function (msg) { 
     console.log('Message Received: ', msg); 
     socket.broadcast.emit('message', msg); 
    }); 
}); 

超级简单,真的没有什么不可以。

而对于我的客户Objective-c代码就更简单了:

- (void) connect 
{ 
    SocketIOClient* client = [[SocketIOClient alloc]initWithSocketURL:@"http://127.0.0.1:8080/" options:nil]; 
    [client connect]; 
} 

但我不能看到我的控制台上只按了Listening at: http://localhost:8080消息。

我似乎无法找到我在这里做错了什么,在这个组合项目中,快速调试是可怕的事实,我不能完全通过socket.io自我调试(但我是很确定他们的代码没有错)

任何帮助将不胜感激。

回答

0

plz确认,如果您使用模拟器进行iOS测试。对于设备,您需要将公共地址分配给您的NodeJS服务器,然后需要在iOS代码库中使用它的IP。

我在上一个项目中使用过https://github.com/pkyeck/socket.IO-objc,它的功能就像一个魅力。

对于模拟器,您的代码应该理想地工作。

+0

的确,我正在使用模拟器。所以你说我必须使用服务器地址: MyIP/8080? – Itzik984

相关问题