每 5 秒检查一次数据库值很昂贵,因为用户数量很多,比如 10000 或更多?
Checking a database value per 5 seconds is expensive with a lot of user count like 10000 or more?
我正在使用 Unity 编写多人 RPG 游戏,在战斗场景中,玩家必须确定她或他使用哪种攻击。当玩家按下攻击按钮时,玩家向服务器发送 post 请求,服务器强制检查 post 请求是否合法,然后如果请求合法,服务器标记数据库值 "on",准确的说,是由“0”变成“1”,即所谓的"attack_determined",例如
问题是,我必须再次发出 http 请求来检查这个值。一场战斗最多有 6 个角色,如果所有人都想检查 attack_determined 是 0 还是 1,则每个攻击请求会发出 6 个请求。例如,我不想考虑用户数是否增加到 10000。我正在使用的 VPS 服务器很难处理这些请求。有什么办法可以减少请求数吗?我不想使用套接字,我在考虑使用会话或内存缓存。我在服务器端使用 PHP,在 Unity 客户端使用 C#。
I don't want to use sockets
使用 WebSocket。
您可以使用 websocket standalone library or use Unity's Network API and enable websocket on it. If you decide to use Unity Network API, this can be enabled by simply setting NetworkServer.useWebSockets
到 true
。
启用后,Unity 将从 socket 切换到 websocket。如果你只是在开发 WebGL 应用程序,你可以看看 assetstore 上的这个 websocket 插件。
我正在使用 Unity 编写多人 RPG 游戏,在战斗场景中,玩家必须确定她或他使用哪种攻击。当玩家按下攻击按钮时,玩家向服务器发送 post 请求,服务器强制检查 post 请求是否合法,然后如果请求合法,服务器标记数据库值 "on",准确的说,是由“0”变成“1”,即所谓的"attack_determined",例如
问题是,我必须再次发出 http 请求来检查这个值。一场战斗最多有 6 个角色,如果所有人都想检查 attack_determined 是 0 还是 1,则每个攻击请求会发出 6 个请求。例如,我不想考虑用户数是否增加到 10000。我正在使用的 VPS 服务器很难处理这些请求。有什么办法可以减少请求数吗?我不想使用套接字,我在考虑使用会话或内存缓存。我在服务器端使用 PHP,在 Unity 客户端使用 C#。
I don't want to use sockets
使用 WebSocket。
您可以使用 websocket standalone library or use Unity's Network API and enable websocket on it. If you decide to use Unity Network API, this can be enabled by simply setting NetworkServer.useWebSockets
到 true
。
启用后,Unity 将从 socket 切换到 websocket。如果你只是在开发 WebGL 应用程序,你可以看看 assetstore 上的这个 websocket 插件。