問題タブ [messenger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
145 参照

c# - 2 つのスレッドが同じメソッドを呼び出すときのスレッド同期に関する混乱

Messenger ライブラリを作成し、それをスレッド セーフにしたので、スレッド間で安心して共有できます。私は主に Monitor クラスを使用してこれを実現します。

ソケットなどをシャットダウンする前にトランザクションが発生するのを待機しようとするため、完了するまでに時間がかかる可能性のあるログアウト ルーチンがあります。これは非同期で、Begin/End メソッドがありますが、この例では同期のふりをします。

2 つのスレッドが次々に Logout を呼び出すとどうなるでしょうか? 2番目のスレッドで何をすべきですか?

現在、最初のログアウトが完了するまで (Monitor.Wait を使用して最初のスレッドからの Pulse を待機して) ブロックし、AlreadyLoggedOutException をスローします。

Logout が呼び出されたが、ログアウトが既に行われている場合に LogoutInProgress 例外をスローすることも試しました。

どちらも一長一短あるようですが、他の方が良いと思うものを知りたいです。

0 投票する
1 に答える
374 参照

javascript - Javascript による Windows Live Messenger 接続

私はこれを自分で解決することをあきらめました。どんな助けでも大歓迎です。私の最終的な目標は、会社の Web サイトに WLM (Windows Live Messenger) を実装することです。この目的のために、javascript や php を使用できますが、個人的には Javascript を大いに好みます。これは、トラフィックを観察できるため、将来のエラーをデバッグする方が簡単だと思うからです。

必要な情報をすべて取得した後、WLM XMPP サービスに接続できませんでした。ドキュメントでは、この時点で提供される唯一のヘルプは、「サービスへの接続方法については、xmpp ライブラリを参照してください」のように聞こえます。Strophe を使用して接続しようとしましたが、WLM が BOSH サービスをサポートしていないことを読んだので、実際に接続できるかどうかはよくわかりません ( http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/スレッド/fb7af36c-aa77-4c9b-b8ab-8206427469be )? それを読んだ後、メッセージを受信するプロセス全体がどのように達成されるかについても、私は少し無知でした. また、私の理解では、javascript では http リクエストを別のドメインに送信できません。これは、XMPP サービスと通信するときに (私が理解していることから) 実際にやろうとしていることです。

認証、接続などの残りのプロセスは理解していると思いますが、javascript を介して認証ポイントを通過する方法を見つけることができませんでした。提案/コード例は、非常に高く評価されます...

これ ( http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/thread/5f0d6428-5664-4c97-8d36-87dd17d3d7fa ) は、MSN コネクト フォーラムのフォーラム スレッドです。 any1 がさらに情報を必要とする場合に備えて、質問をしていくつかの返信を得ました。

素晴らしい一日をお過ごしください:)

0 投票する
1 に答える
78 参照

c# - リソースを大量に消費することなく、多数のイベントを連続して発生させる方法

私はメッセンジャーライブラリに取り組んでいます。メインクラスにはLoginメソッドがあります。ログインすると、すべての連絡先リストデータがダウンロードされ、ログインが完了するまで保存されます。ログインが完了すると、ダウンロードされたユーザーごとにUserAddedイベントが発生します。

現在、Loginメソッドの最後にイベントを1つずつ発生させています。これは機能しますが、UserAddedイベントハンドラー内で長時間の操作を実行すると、ライブラリコンシューマーがイベントをタイムリーに取得しないことを意味します。

これを回避する1つの方法は、各イベントを非同期で発生させることですが、これはスレッドプールを破壊します。

私は現在それを正しい方法でやっていますか?イベントハンドラー内で長時間の操作を実行することに対する警告をドキュメントに単にメモする必要がありますか?

0 投票する
4 に答える
372 参照

c# - Messenger ライブラリでの連絡先リスト/名簿のダウンロード/同期の理想的な設計パターン

MessengerClientクラスにはLogin関数があります。MessengerClientクラスには、LoggedInイベントIsLoggedInプロパティがあります。

MessengerClientクラスでLoginが呼び出されると、連絡先リスト/名簿がソケットを介してリモート サーバーから取得され、処理されます。その後、クライアントはログインしていると見なされ、IsLoggedInは true を返します。LoggedInイベントは、この後に Login 関数内で発生します (したがって、ログインを要求する同じスレッド内で発生します。これは悪いことではないと思います)。

ログインすると、クライアントはリモート サーバーからライブ更新を受信します。

ログイン中に連絡先リスト/名簿を処理する場合、エンド ユーザーにとって理想的な設計は、クライアントがログインしていると見なされる前に、すべての連絡先リスト/名簿データを処理することだと思います。このようにして、ユーザーがLoggedInイベントを受け取ると、すぐに連絡先データにアクセスできます。

例えば ​​-

ここには、LoggedInイベントに対するエンド ユーザーのハンドラーがあります。

クライアントがログイン済みとしてマークされる前、およびLoggedInイベントが発生する前に、すべての連絡先リストが処理されているため、上記のステートメントは true を返します。論理的には、連絡先リストのダウンロードと処理はログイン操作の一部であるため、これはエンド ユーザーが期待することだと思います。

また、連絡先が連絡先リストに追加されたとき、またはグループに追加されたときにイベントを発生させることも好きです。これまでに述べたロジックからすると、データが処理されているときにContactAddedContactAddedToGroupなどのイベントを発生させることは明らかに意味がありません。これにより、MessengerClient クラスが処理される前にエンド ユーザーがこれらのイベントのいずれかを受け取ることになるためです。ログイン中としてマークされます。

上に示したように、これは悪いことが起こる結果になります。

したがって、私が実際に行う必要があるのは、連絡先リストのデータを処理し、logged in イベントを発生させ、その後で他のすべての連絡先イベントを発生させることです。

このために、すべての連絡先オブジェクト、グループ オブジェクトなどを反復処理して、適切なイベントを発生させることができます。

ここまでは大丈夫ですよね?

ただし、問題は、最初のログイン時に連絡先リストのデータをダウンロードすることに加えて、クライアントがログアウトしてから再度ログインした場合に連絡先データを同期する準備をしなければならないことです。

これには、ContactRemoved、ContactNameChanged、ContactRemovedFromGroup などのイベントが含まれます。

そのため、削除された連絡先やプロパティが変更された連絡先を考慮する必要があるため、連絡先やグループなどを反復処理するほど単純ではなくなりました。

したがって、ログインが行われた後にこれらのイベントが発生するように「キューに入れる」別の方法が必要です。

各同期イベントを表すクラスを用意することを検討しました。たとえば、SyncContactRemoved、SyncContactNameChanged、SyncContactAddedToGroup などです。これにより、データを処理し、イベントごとに Sync*XXX* クラスを作成し、それらをリストに追加して、ログイン後に反復できるようにします。

オブジェクト自体にメソッドを持たせることも検討しました。つまり、Group.SyncContactsAdded、Contact.SyncNameChanged、MessengerClient.SyncContactsAdded です。次に、ログイン後に連絡先/グループなどを繰り返し処理し、これらのプロパティを確認し、必要に応じてイベントを発生させてからクリアします。

最後に、EventHandler と EventArgs を含む Event クラスを持つことを検討しました。この方法でイベントをキューに入れ、ログイン後に 1 つずつ呼び出すことができます。

もしあれば、これらのパターンのどれがより一般的な方法と考えられますか. または、これを達成するための代替手段はありますか?

とても長い質問で申し訳ありませんが、簡単な質問ではありません。

ありがとう

0 投票する
2 に答える
516 参照

ubuntu - ネットワーク内の2台のubuntuマシン間でチャットする方法は?

ネットワーク内の2台のubuntuマシン間でチャットする方法を知りたいです。

ネットワーク内の2ubuntuのコマンドラインチャットメッセンジャーはありますか?
またはGUIも機能します。

「ネットワークチャットメッセンジャー」についてお伺いします。

0 投票する
1 に答える
6493 参照

android - Android:リモートメッセンジャーサービスを呼び出す際のメソッドの同期

リモートサービスに接続するモジュールを作成したい。

このモジュールは、開発者がアプリで特定の(Bluetooth-)ハードウェアに接続するために使用できます。次に、市場で個別に更新できる単一のリモートサービスに接続する必要があります。

リモートサービスは、同時に使用するすべてのアプリに対して単一のスレッドしか許可されていないため(Bluetooth経由の接続は1つのみ)、AIDLではなくメッセンジャーアプローチを選択しました。

私の問題は、パブリックAPIで同期メソッドを提供したかったのですが、サービスがハンドラーで返されることです。私が理解している限り、ハンドラーは常に現在のタスクが終了するのを待ちます...別のスレッドで答えを得る方法は?

私が望む同期メソッドのコード:

前もって感謝します。私の質問がある程度理解できたと思います...;)

/ EDIT:サーバーからデータを返すメソッドが必要です。お気に入り

しかし、ハンドラーが戻るのを妨げるスレッドでスタックしているため、サービスが戻るのを待つことができません...

0 投票する
3 に答える
1474 参照

java - Java メッセンジャー (マルチスレッドとスイング)

Javaメッセンジャーアプリケーションに問題があります。私は、netbeans とサーバーとクライアント クラスで簡単な GUI を作成しました。GUIでサーバーの新しいインスタンスを作成すると、新しいスレッドが開始され、そこでリッスンが開始されます。サーバーが何かを取得し、別のクラスと別のスレッド(GUI)のJTextPaneでsetText()を使用したいhandleConnection()に移動すると、問題が発生します。コードは次のとおりです。

GUIのクラスの接続ボタンのコード:

サーバークラス:

すみません、それを忘れていました:

0 投票する
2 に答える
674 参照

iphone - xcodeでインジケーターを入力する

iPhoneチャットアプリケーションにタイピングインジケーター(「ジョンはタイピング中」)を実装する方法を知っている人はいますか?これは、ユーザーが入力中のことを感知します。Kikメッセンジャーのように。

リリース前に、これを実装するために必要な作業量のゲージを取得しようとしています。

または、正しい方向へのポインタが役立ちます!

よろしく

0 投票する
1 に答える
131 参照

login - プログラムで msn メッセンジャーにサインインする

msnメッセンジャーウィンドウを起動し、電子メールとパスのフィールドに入力してから、C#を使用してプログラムで「サインイン」ボタンを「押す」にはどうすればよいですか?

4 つの電子メール アドレスに対してすべて手動でこれを行う手間が省けるので、これを行いたいと考えています。

前もって感謝します!

0 投票する
1 に答える
500 参照

android - 予期しないアプリケーションのクラッシュ

サービスクライアントアプリケーションを作成しようとしています(これらはまだ学習中です)。アプリケーションが最初からクラッシュし、何もできません。それを理解する方法はありますか?これが私の2つのクラスとマニフェストファイルです。

/////////////////// 1. MainActivity.java //////////////////////

}

//////////////////// 2.MessengerService.java ///////////////////////

}

/////////////////// 3. マニフェスト /////////////////////////// /////////