public void do7007(MessageNode node) { ByteBuffer buffer = node.buffer; User user = node.socket.user; user.room.updateGameReadyOnCancel(user, -1); }
//房间密码设置 public void do7017(MessageNode node) { User user = node.socket.user; ByteBuffer buffer = node.buffer; GameHall.shareGameHall().setRoomPassword(buffer.readInt(), user, buffer.readString()); }
//私聊 public void do2002(MessageNode node) { User user = node.socket.user; ByteBuffer buffer = node.buffer; GameHall.shareGameHall().SiLiaoMessage(user, buffer); }
public void Run() { try { while (run) { if (!cqueue.IsEmpty) { // lock(this) //{ MessageNode node; bool f = cqueue.TryDequeue(out node); cNode = node; util.core.EventDispatch.dispatchEvent(node.Type, node); debug.logln("===============还有剩余消息: " + cqueue.Count); //debug.logln(node.socket.name + " < " + (node.socket.user != null ? node.socket.user.ChinaName : "") + " : " + node.Type + " > - 执行第[ " + (++msgCount) + " ]条协议"); // } } // Thread.Sleep(1); } }catch (Exception e) { debug.log(e.Message); debug.logln("=========================================================="); debug.logln("警告: 发生了严重错误!!! <" + cNode.socket.user.ChinaName + " : " + cNode.Type + ">"); debug.logln("=========================================================="); cNode.socket.Close(); ConstomMessage.SendAllMessage("原因:[" + cNode.socket.user.ChinaName + "]执行了 > " + cNode.Type + " 协议"); run = false; } }
//玩家加入房间 public void do6310(MessageNode node) { User user = node.socket.user; ByteBuffer buffer = node.buffer; GameHall.shareGameHall().addRoom(buffer.readInt(), user, buffer.readString()); }
/// <summary> /// 消息入队 /// </summary> /// <param name="message"></param> public void addTask(MessageNode node) { lock (this) { cqueue.Enqueue(node); } RunMessage(); }
public void do7999(MessageNode node) { User user = node.socket.user; if (user.room != null) { user.room.ExitRoom(user); } }
public void do7111(MessageNode node) { ByteBuffer buffer = node.buffer; User user = node.socket.user; int row = buffer.readInt(); //行 int col = buffer.readInt(); //列 user.room.UserTurnGame(user, row, col); }
//用户登陆 public void do1001(MessageNode node) { ClientNode client = node.socket; ByteBuffer buffer = node.buffer; string name = buffer.readString(); if (g.ContansUser(name)) { client.send(ConstomMessage.getError("该用户已在别处登陆,服务器拒绝登陆!")); return; } if (!FFactory.Exists(Share.USER_SAVE_PATH + name)) { client.send(ConstomMessage.getError("用户名错误!")); return; } User user = FFactory.ReadObject <User>(Share.USER_SAVE_PATH + name); string pwd = buffer.readString(); if (!user.Password.Equals(pwd)) { client.send(ConstomMessage.getError("密码错误!")); } else { user.BindSocket(client); g.addUser(user); ByteBuffer buf = new ByteBuffer(); buf.writeInt(Protcol.用户登陆); buf.writeString(user.UserName); buf.writeString(user.ChinaName); //debug.logln(user.Money, user.Duanwei, user.Image, user.Text); buf.writeInt(user.Money); buf.writeString(user.Duanwei); buf.writeString(user.Image); buf.writeString(user.Text); client.send(buf); GameHall.shareGameHall().addGameHall(user); //debug.logln(user.ChinaName + " 登陆成功"); //user.ReadImageBuffer();//先把图片读出来 } }
/// <summary> /// 消息入队 /// </summary> /// <param name="message"></param> public void addTask(MessageNode node) { cqueue.Enqueue(node); if (this.wait) { Moinst.Set(); } if (!this.runing) { runing = true; runAction = new Action(doRun); this.RunTask(); } }
//私聊 public void _do2002(MessageNode node) { ClientNode client = node.socket; ByteBuffer buff = node.buffer; string dfUser = buff.readString(); string wrod = buff.readString(); User user = g.getUser(dfUser); if (user != null) { ByteBuffer buf = new ByteBuffer(Protcol.用户私聊); buf.writeInt(Protcol.用户私聊); buf.writeString(client.user.UserName); buf.writeString(client.user.ChinaName); buf.writeString(wrod); user.Send(buf); } }
public void doRun() { MessageNode node; bool f = cqueue.TryDequeue(out node); cNode = node; if (node.Method != null) { node.Method(); } else { debug.logln("准备执行: " + (node.socket.user != null ? node.socket.user.ChinaName : node.socket.name) + " 的协议,Type: " + node.Type); util.core.EventDispatch.dispatchEvent(node.Type, node); } //debug.logln(node.socket.name + " < " + (node.socket.user != null ? node.socket.user.ChinaName : "") + " : " + node.Type + " > - 执行第[ " + (++msgCount) + " ]条协议"); }
//注册 public void do1002(MessageNode node) { ClientNode client = node.socket; ByteBuffer buff = node.buffer; string name = buff.readString(); if (g.ContansUser(name) || FFactory.Exists(Share.USER_SAVE_PATH + name)) { //存在 client.send(ConstomMessage.getError("用户名已存在")); client = null; return; } string chinaName = buff.readString(); string sex = buff.readString(); int age = buff.readInt(); string pwd = buff.readString(); User user = new User(name, chinaName, sex, age, pwd); //是否有图片上传 int im = buff.readInt(); if (im > 0) { string imgExt = buff.readString(); string imgName = name + this.getImageName() + imgExt; user.Image = imgName; ByteBuffer imgbs = buff.readBuffer(); FFactory.SaveObject(Share.USER_SAVE_IMAGE_PATH + imgName, imgbs.getBuffer()); } FFactory.SaveObject(Share.USER_SAVE_PATH + name, user); //g.addUser(user); debug.logln("用户注册成功 : " + name + " 密码: " + pwd); ByteBuffer buf = ByteBuffer.CreateByteBufferType(Protcol.用户注册); //buf.writeInt(Protcol.用户注册); //buf.writeInt(1); client.send(buf); }
public void _do2001(MessageNode node) { ClientNode client = node.socket; ByteBuffer buff = node.buffer; string wrod = buff.readString(); ByteBuffer buf = new ByteBuffer(Protcol.用户群聊); buf.writeInt(Protcol.用户群聊); buf.writeString(client.user.UserName); buf.writeString(client.user.ChinaName); buf.writeString(wrod); User[] users = g.Users(); foreach (User u in users) { if (u != null) { u.Send(buf); } } }
public void Run() { try { while (run) { if (cqueue.Count > 0) { lock (this) { MessageNode node; bool f = cqueue.TryDequeue(out node); cNode = node; //if (node.socket.user != null) { node.buffer.Send(node.socket.getSocket()); } } } // Thread.Sleep(10); } }catch (Exception e) { debug.logln("==========================发送消息时出错:=================================="); if (cNode.socket.user != null) { debug.logln("错误:" + cNode.Type + " : " + cNode.socket.user.ChinaName); } else { debug.logln("错误:" + cNode.Type + " : " + cNode.socket.name); } debug.log(e.Message); debug.logln("==========================================================================="); run = false; } }
//当玩家第一次进入大厅时 获得所有房间信息 public void do6210(MessageNode node) { //User user = node.socket.user; //ByteBuffer buf = RoomManager.shareRoomManager().RoomInfos(); // user.Send(buf); }
public static void addSendTask(MessageNode node) { SendMessageQueue.addTask(node); }
public static void addReciveTask(MessageNode node) { ReciveMessageQueue.addTask(node); }