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



我构建了一个客户端应用程序和应用程序服务器应用程序,可供玩家用来玩纸牌游戏。我目前的设置如下:

1(

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

我遇到的问题是我不确定如何实现朋友类。 假设客户端 A 是客户端 B 的好友。如果客户端 B 联机,我需要向客户端 A 发送消息,说明客户端 B 已联机(或"在游戏中"或"断开连接"(。

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

从游戏开始的后台进程。 不使用大量系统资源 不断检查登录用户和当前用户的关系。 这是我的意见,但你可以让一个线程单独运行

最新更新