注意! Mobile Mail.ru AgentのコードはGPLプロジェクトのベストプラクティスを使用しているとは言いたくありません。 この記事はエージェントの単なる研究です。
彼は最初にXMLコンソールを見て、このことを見たと言った:
<presence from = "test1234@vke.ru/MobileAgent" to = "jabber@vke.ru/Notebook" xml:lang = "en"> <priority> 5 </ priority> <c xmlns = "http://jabber.org/protocol/caps" node = "http://miranda-im.org/caps" ver = "1.x" /> <status>私はオンラインです!</ status> <status>カスタムステータス</ status> </プレゼンス>
デュアルステータスとワイルドカードバージョンを笑って、ノードに気付きました。 誰もがミランダキャップを使用することに本当に決めましたか
次に、ログイン直後に、オープンXMPPプロトコルを介してサーバーとの作業を比較することにしました(サーバーからのパケットは不必要に切り取られました)
ミランダIMジャバー | モバイルエージェントv1.15
|
---|---|
<iq type = "set" id = "mir_0"> <bind xmlns = "urn:ietf:params:xml:ns:xmpp-bind"> <resource>ミランダ</ resource> </ bind> </ iq> | <iq type = 'set' id = 'seq_10'> <bind xmlns = 'urn:ietf:params:xml:ns:xmpp-bind'> <resource> MobileAgent </ resource> </ bind> </ iq> |
<iq type = "set" id = "mir_1"> <session xmlns = "urn:ietf:params:xml:ns:xmpp-session" /> </ iq> | <iq type = 'set' id = 'seq_11'> <セッションxmlns = 'urn:ietf:params:xml:ns:xmpp-session' /> </ iq> |
<iq type = "get" id = "mir_2"> <クエリxmlns = "jabber:iq:private"> <roster xmlns = "roster:delimiter" /> </ query> </ iq> | <iqタイプ= 'get' id = 'seq_12'> <クエリxmlns = 'jabber:iq:private'> <roster xmlns = 'roster:delimiter' /> </ query> </ iq> |
<iq type = "get" id = "mir_3"> <クエリxmlns = "jabber:iq:private"> <storage xmlns = "storage:bookmarks" /> </ query> </ iq> | <iqタイプ= 'get' id = 'seq_13'> <クエリxmlns = 'jabber:iq:private'> <storage xmlns = 'storage:bookmarks' /> </ query> </ iq> |
<iq type = "get" to = "vke.ru" id = "mir_4"> <query xmlns = "http://jabber.org/protocol/disco#info" /> </ iq> | <iq type = 'get' to = 'vke.ru' id = 'seq_14'> <query xmlns = 'http://jabber.org/protocol/disco#info' /> </ iq> |
ちょっとした分析:
idパケットが似ていることに注目します。 ミランダの場合、これらはゼロから始まります。ここでは10からです。ちなみに、AOLが突然ジャバーサーバーを実装する場合は、これに注意する必要があります-少なくとも1人のクライアントを禁止する可能性があります=)。 各パッケージはミランダに対応しています。 いくつかの面白いことではないにしても、単なる偶然に起因する可能性があります。
- Mirandaのmir_2パッケージは、サーバーからグループセパレーターを要求するために使用されます。サブグループは、「Group \ Subgroup \ Subsubgroup \ etc」の形式で保存されます。見つかりません
- 何らかの理由で、エージェントはサーバーにブックマークを要求しますが、インターフェースには実装されていません
- 要求mir_4(seq_14)-サーバーディスコ-ログインすると、Mood&Activity選択メニューを表示するためにサーバーにPEPがあるかどうかを確認します。 エージェントにはどちらもありません。
- エージェントも上限をサポートしていないため、プレゼンテーションで上限タグがまったく送信されない理由は明らかではありません。
一般に、開発者はプロトコル標準の説明を読んでおらず、そこに何があるのか、そしてなぜなのかを知らなかったと強く感じていました 。
すべてが一致するわけではないことに注意してください。 たとえば、サーバーはPLAIN認証方法を使用してログインしますが、ミランダにはDIGEST-MD5があります
さらに、ここで同僚がこのログを投げました:
JasFas0la(21:50:44 04/26/2008)
JabberはMirandaにあります...プログラムへの統合の成功を事前に決定します。
JasFas0la(21:52:11 04/26/2008)
しかし、私はミランダについて思い出しました。なぜなら、プロジェクトがオープンソースソースからのベストプラクティスを使用するかどうか気にしますか? なぜなら 新しいクライアントでは、私はもう手で書いていません...しかし、ミランダからの情報源を信頼しています。
これは、以前のスマッパーの開発者の1人で、ご存じのようにmail.ruによって購入されました。
開発者が実際にコードを使用したかどうかはわかりません。 事実をお伝えしました。 クライアントのソースコードは、当然どこにも見つかりません。
UPD: Mail.ruの公式位置 :
Jabber用Mobile Mail.Ru AgentはMirandaのソースコードのフラグメントを使用せず、Mail.Ru従業員の開発者によって完全に独立して記述されています。 「類似点」とされるものに関しては、これは私たちがとった予防措置の結果です。 製品の事前リリースに関するニュースが社外に「漏れない」ように、安全にプレイし、Jabberをサポートするエージェントがミランダとして識別されることをプログラマーに指示することが決定されました。 また、ベータステータスは、コードに「埋め込まれた」Jabberを備えたMail.Ruエージェントのすべてのインターフェイス機能が既に実装されているわけではないことを明確に説明しています。
また、Mail.Ru AgentのモバイルバージョンのICQプロトコルには、さまざまなクライアント(これはユーザーによって主張されている)の「偽装」機能があるため、インスタントメッセンジャーは他のプログラムとしてしばしば「認識」されることに注意してください。 コードのコピーはそれと何の関係があるのでしょうか?それはあまり明確ではありません。
コミサロバヴァレリア、
添付のMail.Ruを押します
Public_relations