第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Silverlight+WCF 新手實(shí)例 象棋 獲取房間狀態(tài)列表更新

標(biāo)簽:
架構(gòu)

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示

 

上节是当有用户进入某个房间时,我的某个房间状态被通知,并被通知更新。

这节说说首次进入房间大厅时,我们自己创建了N个房间,默认都是初始状态的,这时我们需要获取服务端的所有已更新的房间状态,

下到本地之后,进行批量更新状态。

 

于是开始了,首先从服务端开始,我们要获取所有已更新的房间,于是到WCF服务端添加一个方法:

到IService.cs添加方法接口

[OperationContract]
Dictionary<int, Room> GetRoomList();

 

接着要实现方法了,到Service.cs去

太阳,这方法太简单了,由于我们之前就有全局的roomList对象,直接返回就可以了。

public Dictionary<int, Room> GetRoomList()
{
  return roomList;
}

 

 

两三行代码就搞定了服务端了。于是我们悄悄的回到客户端

当然了,还是得编绎,更新服务引用,这个说多了,大伙自觉点。

我们回到房间页面Room.xaml.cs里去

我们在构造函数里添加两行代码,默认请求房间列表:

由于之前已有些代码,大伙看注释那两行:

复制代码

public Room()
{
  InitializeComponent();
  game = new Game();
  game.CreateGameRoom(30);
  game.DrawIn(LayoutRoot);
//看这里看这里,这两行是新添加的,获取房间列表
App.client.GetRoomListCompleted += new EventHandler<GameService.GetRoomListCompletedEventArgs>(client_GetRoomListCompleted);
App.client.GetRoomListAsync();
//这里实现ICallBack的方法
App.client.NotifyRoomUpdateReceived += new EventHandler<GameService.NotifyRoomUpdateReceivedEventArgs>(client_NotifyRoomUpdateReceived);
}
 //这里也要看,这里是获取房间列表的事件
void client_GetRoomListCompleted(object sender, GameService.GetRoomListCompletedEventArgs e)
{
   //房间获取完了,待实现
}复制代码

 

看到了吧,获取完后,我们要干点什么呢?当实是实现更新房间状态了。

复制代码

//这里也要看,这里是获取房间列表的事件
        void client_GetRoomListCompleted(object sender, GameService.GetRoomListCompletedEventArgs e)
        {
            //房间获取完了,下面实现了
            if (e.Result == null)
            {
                return;
            }
            //变化的房间列表
            Dictionary<int, GameService.Room> roomList = e.Result as Dictionary<int, GameService.Room>;
            if (roomList.Count > 0)
            {
                foreach (KeyValuePair<int, GameService.Room> item in roomList)
                {
                    if (item.Key > 0 && item.Key < 31)
                    {
                        UpdateRoomState(item.Value, game.GameRoomList[item.Key - 1]);
                    }
                }
            }
        }复制代码

 

看到那个UpdateRoomState函数,别说不认识,就上节我们在通知房间更新时,特别皮痒封装起来的。

搞定了,这节的代码都特别简洁,特别简单,接下来按F5看看效果:

一开始的登陆,和进入房间就不截图了,本系列截的太多了。

这里为Index页面加上一句用户显示文字,免的一片空白,第一个进去如下图:


好,开多一个浏览器,第二个用户登陆:


一进去,默认第一个用户位置就亮蓝色灯了

 OK,此节就到此结束了。


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消