提问人:Burak Yücel 提问时间:12/18/2017 更新时间:12/18/2017 访问量:116
每 5 秒检查一个数据库值的成本很高,因为用户数量很多,比如 10000 或更多?[已结束]
Checking a database value per 5 seconds is expensive with a lot of user count like 10000 or more? [closed]
问:
我正在使用 Unity 编写一款多人 RPG 游戏,在战斗场景中,玩家必须确定她或他使用哪种攻击。当玩家按下攻击按钮时,玩家向服务器发送一个发布请求,服务器进行强制性检查,如果发布请求合法,则服务器将数据库值标记为“on”,或者准确地说,将其从“0”变成“1”,例如,称为“attack_determined”。
问题是,我必须再次发出http请求来检查这个值。一场战斗中最多有 6 个字符,如果所有人都想检查attack_determined是 0 还是 1,则每个攻击请求会发出 6 个请求。例如,我不想考虑用户数量是否增加到 10000。处理我正在使用的 VPS 服务器的这些请求会非常困难。有什么方法可以减少请求计数吗?我不想使用套接字,我正在考虑使用会话或 memcache。我在服务器端使用 PHP,在 Unity 客户端使用 C#。
答:
6赞
Programmer
12/18/2017
#1
我不想使用套接字
使用 WebSockets。
您可以使用 websocket 独立库或使用 Unity 的网络 API 并在其上启用 websocket。如果您决定使用 Unity Network API,只需将 NetworkServer.useWebSockets
设置为 即可启用此功能。true
启用后,Unity 将从套接字切换到 websocket。如果你只是在 WebGL 应用程序上工作,你可以看看 assetstore 上的这个 websocket 插件。
评论