我构建了一个客户端应用程序和应用程序服务器应用程序,可供玩家用来玩纸牌游戏。我目前的设置如下:
1(
- 客户端登录 .
- 服务器已连接到 sql。
- 服务器将连接("接收器"(保存到列表中 ("接收者名单"(。
- 服务器有一个事件类("eventHolder"(。客户端连接/断开连接/请求排队/加入游戏。
- 服务器有一个游戏类,在 4 名玩家排队后实例化。活动游戏类存储在游戏列表中
- 服务器在 4 个线程上运行: a( 2 个线程运行接收器列表中的每个接收器以发送和接收消息 b( 1 个用于队列的线程。 c( 1 个线程来运行游戏列表中的每个游戏。
我遇到的问题是我不确定如何实现朋友类。 假设客户端 A 是客户端 B 的好友。如果客户端 B 联机,我需要向客户端 A 发送消息,说明客户端 B 已联机(或"在游戏中"或"断开连接"(。
最好的方法是什么?通过事件?例如,如果客户端登录搜索每个客户端,如果他们在朋友列表中有该用户名?我什至看到一些建议将在线播放器保留在 SQL 表中,并每 5 秒为每个接收器请求在线播放器,我认为这不是最佳选择。
从游戏开始的后台进程。 不使用大量系统资源 不断检查登录用户和当前用户的关系。 这是我的意见,但你可以让一个线程单独运行