C#-游戏服务器/客户端-如何实现好友状态(即在线,游戏中)

时间:2018-08-16 16:11:12

标签: c# sql client-server

我已经构建了客户端应用程序和应用程序服务器应用程序,玩家可以使用它们来玩纸牌游戏。我当前的设置如下:

1)

  • 客户端登录。
  • 服务器已连接到sql。
  • 服务器将连接(“接收器”)保存到列表 (“ ReceiverList”)。
  • 服务器具有事件类(“ eventHolder”)。客户端连接/断开连接/请求排队/加入游戏。
  • 服务器具有一个游戏类,该游戏类在4个玩家排队后实例化。活动的游戏类别存储在GameList中
  • 服务器在4个线程上运行: a)2个线程来运行ReceiverList中的每个接收器以发送和接收消息 b)1个用于队列的线程。 c)1个线程来运行GameList中的每个游戏。

我的问题是我不确定如何实现Friends Class。 假设客户端A与客户端B是朋友。如果客户端B上线,我需要向客户端A发送消息,告知客户端B上线(或“在游戏中”或“断开连接”)。

做到这一点的最佳方法是什么?通过事件?例如,如果一个客户登录搜索每个客户,如果他们的朋友列表中有该用户名?我什至看到一些建议,将在线播放器保留在SQL表中,并每5秒为每个接收者请求一次在线播放器,我认为这不是最佳选择。

1 个答案:

答案 0 :(得分:-1)

从进行游戏开始的背景流程。不使用很多系统资源会不断检查登录的用户和当前处于关系中的用户。这是我的看法,但您可以单独运行一个线程