/*
* 由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();
}
}
}