Express.IO连接始终与HTTP 500失败

时间:2013-08-12 11:52:35

标签: ios node.js express socket.io

我正在使用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');

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

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