2016-01-11 343 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

相關問題