/// <summary> /// 通过玩家ID调用客户端的方法... /// </summary> /// <param name="note"></param> private void InvokeClientByPlayerID(InvokeClientNote note) { //if (note == null || note.IDList == null) return; //switch (note.IDList.Count) //{ // case 0: return; // case 1: PlayerBusiness one; // if (PlayersProxy.TryGetPlayerByID(note.IDList[0], out one)) // { // one.Call(note.Type, note.Body as IList); // } // return; // default: // var buffer = AmfCodec.Encode(note.Type, note.Body as IList); // foreach (var playerID in note.IDList) // { // PlayerBusiness player; // if (PlayersProxy.TryGetPlayerByID(playerID, out player)) // { // player.Call(buffer); // } // } // return; //} }
void ExecuteNote(InvokeClientNote note) { if (note.Name == MessageCommand.InvokeClientByConnectID) { InvokeClientByConnectID(note); } else if (note.Name == MessageCommand.InvokeClientByPlayerID) { InvokeClientByPlayerID(note); } else if (note.Name == MessageCommand.InvokeClientByUserID) { InvokeClientByUserID(note); } }
/// <summary> /// 通过连接ID调用客户端的方法... /// (此类通知一般由服务端发起) /// </summary> /// <param name="note"></param> private void InvokeClientByConnectID(InvokeClientNote note) { //if (note == null || note.IDList == null) return; //switch (note.IDList.Count) //{ // case 0: return; // case 1: // SessionsProxy.Call(note.IDList[0], note.Type, note.Body as IList); // return; // default: // var buffer = AmfCodec.Encode(note.Type, note.Body as IList); // foreach (var connectID in note.IDList) // { // SessionsProxy.Call(connectID, buffer); // } // return; //} }
/// <summary> /// 通过用户ID调用客户端的方法... /// </summary> /// <param name="note"></param> private void InvokeClientByUserID(InvokeClientNote note) { //if (note == null || note.IDList == null) return; //switch (note.IDList.Count) //{ // case 0: return; // case 1: UserSession one; // if (UsersProxy.TryGetUser(note.IDList[0], out one)) // { // one.CallArray(note.Type, note.Body as IList); // } // return; // default: // var buffer = AmfCodec.Encode(note.Type, note.Body as IList); // foreach (var user in note.IDList) // { // UserSession session; // if (UsersProxy.TryGetUser(user, out session)) // { // session.SendAsync(buffer); // } // } // return; //} }