0

socket.io およびその他の依存関係を使用する node.js チャット アプリがありますが、現在データベースがありません。

ある時点で2人のユーザーが一致するメッセージを持っているときに、一致するメッセージを同時に持つ必要がないアプリに取り組んでいるので、これにアプローチする方法と実装する方法についてアドバイスをお願いします.

ユーザー 1 はチャットの開始時に「リンゴ」という単語を言い、ユーザー 2 はチャットの途中でリンゴを言ったかもしれません。この試合が発生すると、両方がポイントを獲得します。これを容易にする優れたベースチャットアプリを探していましたが、それを満たすものは見つかりませんでした.

ありがとう。

4

2 に答える 2

1

This is how i could implement the whole game. Its clear that you will get the answers from both players. I guess that in your chat programm you'd have something of an identifier to check for the users ID and their chat session, so I'm not going to bother with this. I think that the implementation of sending a new "question" for their matching task shouldnt be a problem by just doing a simple

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

The string match should be another task. This could be easily done in javascript. As you are just trying to match complete strings, I would go about this as follows. Suppose you have a chat string1 and chat string2 corresponding to user1 and user2. From there you will need to cross reference all words in string1 with string2. For this string1 has to be broken apart.

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
}

I'm not sure if you have to replace the quotes ' " ' in your string1Split[i] but thats just a matter of doing another regexp.

于 2012-11-23T19:38:17.003 に答える
0

タグがサーバーに送信されるときに、配列を使用してタグを格納できるようです。同時に、それらの受信タグを他のユーザーの保存されたタグと照合することができます。

このようなものにはredisをお勧めします。これは非常に高速で、データを長期間保存したり、複雑なデータ構造を保持したりする必要はないようです。

于 2012-11-23T22:22:10.730 に答える