在游戏登录中,我会创建一个新的GameScoket,再连到游戏服务器当中,但如果进入条件不足,会收到服务器的信息。同时服务器会将我的GameSocket断开,我会做相应的操作,但如果第二次再点房间时,就会卡住。原因未明,像是服务器没有收到我发过去的登录信息一样。以下是代码:
this.loginGame_Function = function(ip,prot,playerId,sign){
var self = this;
var io = null;
if(self.grabBullSocket === null){
if(cc.sys.isNative){
self.grabBullSocket = SocketIO.connect(ip+":"+prot);
}else{
io = require("Socket.io");
self.grabBullSocket = io(ip+":"+prot);
}
}
self.connectServer_Function(playerId,sign);
self.grabBullSocket.on('connect_error', function(){
self.grabBullSocket.close();
self.lobbyMain.contentGameServerFail_Function("GrabBull");
});
self.grabBullSocket.on('connect_timeout', function(){
self.grabBullSocket.close();
self.lobbyMain.contentGameServerFail_Function("GrabBull");
});
};
this.connectServer_Function = function(playerId,sign){
var self = this;
if(self.grabBullSocket){
self.grabBullSocket.on('connected',function(result){
console.log(result+"******************************************");
if(result){
self.grabBullSocket.emit('LoginGame',{"userid":playerId, "gametype":4, "sign":sign});
}
});
self.grabBullSocket.on('loginGameResult',function(result){
// console.log(result);
result = self.changeResultJSON_Function(result);
if(result.resultid){
self.playerInfo.playerCoin = result.Obj.score;
self.lobbyMain.getComponent("LobbyMain").netWork.socket.disconnect();
self.grabBullSocket.emit('LoginRoom',{"roomid":1});
self.loginRoom_Function();
// self.playerInfo.gameIp = ip+":"+prot;
}else{
self.lobbyMain.com_Tips.getChildByName("sp_GameLoading").active = false;
self.lobbyMain.getComponent("LobbyMain").loadGameScene = false;
self.lobbyMain.getComponent("LobbyMain").bg_Black.active = true;
self.lobbyMain.getComponent("LobbyMain").com_MessageBox.active = true;
self.lobbyMain.getComponent("LobbyMain").com_MessageBox.getChildByName("lb_Tips").getComponent("cc.Label").string = result.msg;
for(var listener in self.grabBullSocket.$events){
if(listener != undefined){
socketio.removeAllListeners(listener);
}
}
self.grabBullSocket = null;
// self.grabBullSocket.disconnect();
}
});
}
},
第二次时,连‘connected’这个监听都没有收到信息了,做了很多处理都是不行~在线等~很急!!!!!!