查看 node.js 聊天应用中的用户是否有匹配的消息



我有一个使用 socket.io 和其他依赖项的node.js聊天应用程序,但我目前没有数据库。

我想得到一些关于如何处理以及如何实现它的建议,因为我正在开发一个应用程序,当 2 个用户在某个时候有匹配的消息时,他们不必同时拥有匹配的消息。

用户 1 可能在聊天

开始时说出"苹果"一词,用户 2 可能在聊天中一半说出苹果。当这场比赛发生时,他们都会得到积分。我一直在寻找一个好的基地聊天应用程序,可能会促进这一点,但我发现什么都没有满足。

谢谢。

这就是我实现整个游戏的方式。很明显,你会从两个玩家那里得到答案。我想在您的聊天程序中,您会有一些标识符来检查用户ID及其聊天会话,所以我不会为此烦恼。我认为通过简单地做一个简单的事情,为他们的匹配任务发送一个新"问题"的实现应该不是问题

setTimeout(function(){ io.emit('newQuestion', {picture: randomPicture})}, 120000);

字符串匹配应该是另一个任务。这可以在javascript中轻松完成。由于您只是尝试匹配完整的字符串,因此我将按如下方式进行操作。假设您有一个聊天string1和对应于用户 1 和用户 2 的聊天string2。从那里,您需要将string1中的所有单词与string2交叉引用。为此,string1必须被拆散。

var string1 = "apple half";
var string2 = "an apple";
var string1Split = string1.split(" ");
var match = false;
for(i=string1Split.length; i--;) {
 result = str.match(/string1Split[i]/g);
 if(result.length > 0 && match == false) {
  match = true;
 }
}
if(match) {
 //add points to it
}

我不确定您是否必须替换string1Split[i]中的引号" ' ,但这只是执行另一个正则表达式的问题。

听起来您可以使用

数组来存储标签,因为它们被发送到服务器。同时,您可以根据其他用户存储的标签检查这些传入标签。

对于这样的事情,我建议使用redis。它非常快,而且您似乎不需要长时间存储数据或保持任何类型的复杂数据结构。

最新更新