首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >passport.socketio &客户端仅在重新启动服务器时才连接/重新连接

passport.socketio &客户端仅在重新启动服务器时才连接/重新连接
EN

Stack Overflow用户
提问于 2015-08-26 06:52:14
回答 1查看 361关注 0票数 1

我有一个实时应用程序,它可以很好地工作在express+passportJS和没有套接字认证。当我添加passport.socketio时,我的问题是套接字只有当我重新启动服务器.时才会连接

服务器上有passportjs & passport.socketio,客户端有btford.socket-io的angularjs

代码语言:javascript
复制
angular.module('Socket', ['btford.socket-io'])

    .factory('socket',['socketFactory', function(socketFactory){
        var myIoSocket = io.connect("http://192.168.0.7:8080");

        mySocket = socketFactory({
            ioSocket: myIoSocket
        });

        return mySocket;
    }]);

当用户登录时,我正在执行socket.connect();。这在服务器端似乎没有做任何事情,我没有看到任何日志.

下面是passport.socketio的实现,如本教程所示

代码语言:javascript
复制
var io = require('socket.io').listen(app.listen(port));
var passportSocketIo = require("passport.socketio");

io.use(passportSocketIo.authorize({
    cookieParser: cookieParser,
    secret:       'secret',
    store:        sessionStore,
    success:      onAuthorizeSuccess,
    fail:         onAuthorizeFail,
}));

function onAuthorizeSuccess(data, accept){
    log.debug('successful connection to socket.io');
    return accept();
}

function onAuthorizeFail(data, message, error, accept){
    log.debug('unsuccessful connection to socket.io');
    if(error){
        throw new Error(message);
    }

    return accept(new Error(message));
}

奇怪的是,当我重新启动服务器时,可以看到大量日志消息,显示我试图连接的所有套接字实际上都连接了

然后,它似乎允许用户通过套接字进行交换,并按预期工作。

有人知道会发生什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 04:17:52

当客户端打开页面时,客户端将进行连接,然后初始化握手。然后服务器检查身份验证并强制断开连接。然后,服务器不检查同一套接字连接的身份验证(不初始化握手)。你必须从客户端强制一个新的连接。

代码语言:javascript
复制
socket = io.connect(SOCKET_URL, {forceNew: true});

你的代码

代码语言:javascript
复制
var myIoSocket = io.connect("http://192.168.0.7:8080",{forceNew: true});

我也有同样的问题,这解决了我的问题。如果您强制一个新的连接,我希望它以前的所有事件侦听器都会丢失。您必须再次添加事件侦听器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32219793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档