0

我正在使用 Express.IO 和This iOS Client试图创建一个基本的套接字示例,但我似乎无法连接。

我尝试了所有可能在谷歌上找到的东西,但每次我的客户尝试连接时,我都会收到以下错误:

2013-08-12 14:48:42.628 SocketIOTest[59835:c07] ERROR: handshake failed ... Could not connect to the server. 2013-08-12 14:48:42.628 SocketIOTest[59835:c07] OnError: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo=0x7594570 {NSErrorFailingURLStringKey=http://localhost:7076/socket.io/1/?t=16807, NSErrorFailingURLKey=http://localhost:7076/socket.io/1/?t=16807, NSLocalizedDescription=Could not connect to the server., NSUnderlyingError=0x10967bb0 "Could not connect to the server."}

当我进入http://localhost:7076/socket.io/1/?t=16807浏览器时,我得到以下响应: ttIwyz7Tw6uFjp00WceI:60:60:websocket,htmlfile,xhr-polling,jsonp-polling

但由于某种原因,在使用标头工具检查时,它实际上确实返回了 HTTP 500 错误。我真的不知道为什么。

这是我的节点代码:

#!/usr/bin/env node

var express     = require('express.io');
var app         = express().http().io();
var redisStore  = require('connect-redis')(express);

app.use(express.cookieParser());
app.use(express.session({
                            store:  new redisStore({
                                        host:   '192.168.33.10',
                                        port:   6386
                                    }),
                            secret: 'A>mVt*Cx87Kq^9:3}am$q67JYtGGAl'
                        })) ;

app.use(function(err, req, res, next){
    response.header('Access-Control-Allow-Origin', '*');
    response.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
    response.header('Access-Control-Allow-Credentials', 'true');
    response.header('Access-Control-Allow-Headers', 'Content-Type, Accept, Origin, Cookie');
    next();
});

app.set( 'origins', '*' );

app.io.on('connection', function (socket) {
    console.log("connection");
    socket.emit('news', { hello: 'world' });
});

app.listen(7076);
console.log('App API Server is listening on port 7076');

将不胜感激任何帮助。

4

1 回答 1

1

似乎您指的是 localhost: NSErrorFailingURLStringKey=http://localhost:7076/socket.io/1/?t=16807在您的 IOS 客户端中,而 node.js 服务器在某些外部 Linux 机器上运行。请尝试连接到服务器。

于 2013-08-12T13:24:55.670 回答