Node.js Socket.io在某些客户端网络上不工作

Node.js Socket.io在某些客户端网络上不工作,node.js,socket.io,Node.js,Socket.io,我有一个聊天应用程序,使用nodejs和socket.io,运行在公用服务器的端口49158上,因此我不能使用标准端口80 在某些网络中,客户端可以使用套接字登录,但不能发送任何消息。 提前谢谢 客户端代码: var messagToSend = e.data.messageToSend; messagToSend.id = self.user.id; messagToSend.token = self.user.token; self._socket.emi

我有一个聊天应用程序,使用nodejs和socket.io,运行在公用服务器的端口49158上,因此我不能使用标准端口80

在某些网络中,客户端可以使用套接字登录,但不能发送任何消息。 提前谢谢

客户端代码:

var messagToSend = e.data.messageToSend;
      messagToSend.id = self.user.id;
      messagToSend.token = self.user.token;
      self._socket.emit('newmsg',messagToSend, function (err, data) {
        if (err == null) {
          self.toastr.success('Message was sent successefully');
          self.newMessageWindow.close();
        } else {
          self.toastr.error(`Bad emails : ${data} `);
          self.newMessageWindow.close();
        }
      });
服务器代码:

    socket.on('newmsg', function (data, callback) {

    if (data && data.id && data.titre && data.message && data.emails && typeof(data.notify_me) === "boolean" && data.token) {
        var user = null;
        var titre = data.titre;
        var message_content = data.message;
        var emails = data.emails;
        var notify_me = data.notify_me;
        var token = data.token;
        var id = data.id;
        var badusers = [];


        // verification si le  user est bon

        User.get(id, function (err, connected_user) {
            if (!err) {
                user = connected_user;
                if (user !== null) {
                    // verification du token
                    if ((jwt.verify(token, 'shhhhh')) && (jwt.verify(token, 'shhhhh')).email == user.email) {
                        // bon token
                        Sync(function () {
                            // on cree le message
                            try {
                                var message = Message.create.sync(null, {
                                    titre: titre,
                                    content: message_content,
                                    notify_me: notify_me
                                });
                                if (message !== null) {
                                    // message created  we can add the sender
                                    try {
                                        var sender = message.setSender.sync(null, user);
                                        if (sender !== null) {
                                            // on parcours les emails
                                            for (let i = 0; i < emails.length; i++) {
                                                let email_destinaire = emails[i];
                                                let destinataires = User.find.sync(null, {email: email_destinaire}, 1);

                                                if (destinataires.length > 0) {
                                                    let destinataire = destinataires[0];

                                                    // verification si le user est online ou pas
                                                    var k = 0;
                                                    var en_ligne = false;
                                                    while (en_ligne == false && k != online.length) {
                                                        if (online[k].email == destinataire.email) {
                                                            en_ligne = true;
                                                        } else {
                                                            k++;
                                                        }

                                                    }
                                                    if (en_ligne == true) {
                                                        // on fait un emit
                                                        io.sockets.connected[online[k].socket_id].emit('newmsg', {
                                                            id: message.id,
                                                            titre: message.titre,
                                                            content: message.content,
                                                            created_at: message.created_at,
                                                            notify_me: message.notify_me,
                                                            user: user
                                                        });
                                                    }
                                                    // on enregistre dans les receivers
                                                    // on enregistre dans les receivers
                                                    message.addReceivers(destinataire, {vu: false}, function (err, dest) {
                                                        if (!err) {

                                                           /* if (enligne == true) {
                                                                // recuperation de la liste des favoris
                                                                user.getFavoris(function (err, favoris) {
                                                                    if (!err) {
                                                                        var z = 0;
                                                                        var trouve = false;
                                                                        while (trouve == false && z != favoris.length) {
                                                                            if (favoris[z].email == destinataire.email) {
                                                                                trouve = true;
                                                                            } else {
                                                                                z++;
                                                                            }
                                                                        }
                                                                        if (trouve == false) {
                                                                            user.addFavoris(destinataire, function (err, favoris_added) {
                                                                                if (!err) {
                                                                                    var fav = {
                                                                                        id: favoris_added[0].id,
                                                                                        email: favoris_added[0].email,
                                                                                        pseudo: favoris_added[0].pseudo
                                                                                    };
                                                                                    socket.emit('newfavoris', fav);

                                                                                }
                                                                            });
                                                                        }

                                                                    } else {
                                                                        //
                                                                    }
                                                                })
                                                            }*/
                                                            bdd_tchat.query('select  *  FROM user_favoris WHERE user_id=? AND favoris_id=?', [user.id, destinataire.id], function (err, rows) {
                                                                if(!err){
                                                                    if(rows.length ==0){
                                                                        // insert the new
                                                                        let ob = {'user_id':user.id,'favoris_id':destinataire};
                                                                        bdd_tchat.query('insert into user_favoris SET ?',ob, function (err, rows){
                                                                               if(!err){
                                                                                   socket.emit('newfavoris',{
                                                                                       'id': destinataire.id,
                                                                                       'email': destinataire.email,
                                                                                       'pseudo': destinataire.pseudo
                                                                                   })
                                                                               }
                                                                        });
                                                                    }
                                                                }

                                                            });

                                                        } else {
                                                            // erreur  dans l'ajout du destinaire

                                                        }
                                                    });

                                                } else {
                                                    badusers.push(email_destinaire);
                                                }
                                            }

                                            if (badusers.length == 0) {
                                                callback(null, 200)
                                            } else {
                                                if (badusers.length == emails.length) {
                                                    try {
                                                        let result = message.remove.sync(null);
                                                        console.log("Message droped");
                                                        callback('badmails', badusers);
                                                    } catch (e) {
                                                        //console.log(err);
                                                    }

                                                } else {
                                                    callback('badmails', badusers)
                                                }
                                            }

                                        } else {
                                            // impossible dajouter le sender
                                        }
                                    } catch (e) {
                                        // probleme dans l'ajout du sender
                                    }


                                } else {
                                    // impossible de create le message
                                }
                            } catch (e) {
                                // problem dans la creation du message
                            }
                        })
                    } else {
                        // bad token

                    }
                } else {
                    console.error(e); // something went wrong
                    //  console.log('erreur user nulll');
                }
            } else {
                //console.log('erreur impossible de recup le user');
                console.error(e); // something went wrong

            }
        });


    }


});
socket.on('newmsg',函数(数据,回调){
if(data&&data.id&&data.titre&&data.message&&data.emails&&typeof(data.notify_me)==“boolean”&&data.token){
var user=null;
var滴定=data.titre;
var message_content=data.message;
var电子邮件=data.emails;
var notify\u me=data.notify\u me;
var token=data.token;
var id=data.id;
var badusers=[];
//用户验证
get(id,函数(err,已连接的用户){
如果(!err){
用户=已连接的用户;
如果(用户!==null){
//验证du令牌
if((jwt.verify(令牌,'shhhh'))和&(jwt.verify(令牌,'shhhh'))).email==user.email){
//苯教信物
同步(函数(){
//论信条
试一试{
var message=message.create.sync(空{
乳头:乳头,
内容:消息内容,
通知我:通知我
});
如果(消息!==null){
//消息已创建,我们可以添加发件人
试一试{
var sender=message.setSender.sync(空,用户);
如果(发送方!==null){
//关于包裹和电子邮件
for(设i=0;i0){
设destinataire=destinataires[0];
//验证si le用户est在线ou pas
var k=0;
var en_ligne=false;
while(en_ligne==false&&k!=online.length){
如果(在线[k].email==destinataire.email){
en_ligne=真;
}否则{
k++;
}
}
如果(en_ligne==true){
//论fait-un-emit
io.sockets.connected[online[k].socket\u id].emit('newmsg'{
id:message.id,
titre:message.titre,
内容:message.content,
created_at:message.created_at,
通知我:消息。通知我,
用户:用户
});
}
//关于enregistre dans les接收器
//关于enregistre dans les接收器
message.addReceivers(destinataire,{vu:false},函数(err,dest){
如果(!err){
/*如果(enigne==true){
//福利斯特疗养院
getFavoris(函数(err,favoris){
如果(!err){
var z=0;
var-trouve=false;
while(trouve==false&&z!=favoris.length){
如果(favoris[z].email==destinataire.email){
trouve=真;
}否则{
z++;
}
}
如果(trouve==false){
user.addFavoris(目标,函数(err,favoris_添加){
如果(!err){