我正在学习如何使用Socket.IO,而我正在构建一个小游戏。
当有人创建房间时,我会将房间值保存在数组中。
var clients = [], rooms = [];
...
rooms.push(JSON.parse(roomData));
但是如果服务器崩溃,服务器会丢失所有房间数据。
将数据保存到数据库中并在用户连接到服务器时使用这些值重新填充数组是一个好主意吗?
谢谢。
答案 0 :(得分:0)
在服务器崩溃后恢复socket.io连接状态是一个复杂的主题,很大程度上取决于你正在做什么以及状态是什么。有时客户端可以占用大部分状态,有时它必须保留在服务器上。
状态可以存储到磁盘,存储过程中的另一个,如redis或客户端,并在重新连接时显示。
您只需在服务器上设计一系列事件,然后在客户端重新连接以恢复所有内容时。您可能还需要持久客户端ID,以便了解哪些客户端在重新连接时是哪个客户端。
有很多不同的方法可以做到这一点。所以,是的,你可以使用数据库,或者你可以用不同的方式。没有单一的“最佳”方式,因为它取决于您已经使用的特定环境和工具。