0

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

我想要一些关于如何解决这个问题以及如何实现它的建议,因为我正在开发一个应用程序,当 2 个用户在某个时候有匹配的消息时,他们不必同时拥有匹配的消息.

用户 1 可能会在聊天开始时说出“苹果”这个词,用户 2 可能会在聊天过程中说苹果。当这场比赛发生时,他们都得到积分。我一直在寻找一个好的基础聊天应用程序,它可能会促进这一点,但我发现没有任何东西能满足这一点。

谢谢。

4

2 回答 2

1

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

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

字符串匹配应该是另一个任务。这可以在 javascript 中轻松完成。由于您只是想匹配完整的字符串,我将按如下方式进行。假设你有一个聊天string1,聊天string2对应user1和user2。从那里您将需要交叉引用string1with中的所有单词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]但这只是做另一个正则表达式的问题。

于 2012-11-23T19:38:17.003 回答
0

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

我会推荐 redis 来做这样的事情。它超级快,而且您似乎不需要长时间存储数据或保存在任何类型的复杂数据结构中。

于 2012-11-23T22:22:10.730 回答