/* * 由SharpDevelop创建。 * 用户: Administrator * 日期: 2018-10-30 * 时间: 16:00 * * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件 */ using System; using GameData; using MrWu.Debug; using MrWu.RabbitMQ; using Server.Pack; namespace Server.MQ { /// /// /// public class GameFilter : IMQFilter { string IMQFilter.Name { get { return "GameFilter"; } } /// /// /// public Action SocketMessageHandler { get; } /// /// /// public readonly ServerNode myUtil; /// /// /// /// /// public GameFilter(Action socketMessageHandler, ServerNode myUtil) { SocketMessageHandler = socketMessageHandler; this.myUtil = myUtil; } /// /// /// /// /// /// public bool Filter(Message message, Recv2ReturnDescription msgDesc) { var jsondata = JsonPack.GetPackHead(message.bodystr, out PackHead head); if (head == null) return false; if (myUtil.Equals(head.gameNode)) { //是本游戏 直接发送 return true; } else { //不是本游戏 转发给别的Socket Debug.Error("这个包没带游戏标志:" + head.packlx); return false; } //return head?.packlx == GamePackAgreement.TransFerPack; } /// /// /// /// /// /// public object HandleMessage(Message message, Recv2ReturnDescription msgDesc) { var jsondata = JsonPack.GetPackHead(message.bodystr, out PackHead head); head.packlx = head.transfer; SocketMessageHandler(head, jsondata); return null; } /// /// /// /// /// /// public bool CallFilter(string msg, Recv2ReturnDescription msgDesc) { return false; } /// /// /// /// /// /// public object HandleCallMessage(string msg, Recv2ReturnDescription msgDesc) { throw new NotImplementedException(); } /// /// /// /// /// public bool FilterCallback(Message message) { return false; } /// /// /// /// public void HandleCallbackMessage(Message message) { throw new NotImplementedException(); } } }