3

X (Linux) で動作中の Skype インスタンスに接続された Skype ボットがあります。問題は、受信メッセージが届いたときにmessageStatusChangedイベントが常にトリガーされるとは限らないことです。ほとんどの場合はそうですが、メッセージが「失われた」だけの場合もあります。それらが Skype クライアントに表示されるのを確認できますが、何らかの理由で Skype4Py のイベントがトリガーされません。これらのメッセージに含まれる内容に違いはありません。

なぜそれが起こることができますか?

4

1 に答える 1

2

解決策はありませんが、同じ質問を自問しているため、これをもう少し調査しました。messageStatusChangeddbus-monitor を使用して、アプリケーションに欠落がある場合に、着信メッセージが dbus 経由で通知されたかどうかを確認できます。

$ dbus-monitor "interface=com.Skype.API.Client"

Skype からの「無音」が長時間続くと、最初のステータス変更が失われることが多いという印象があります。

具体的には、「最初の」メッセージは dbus-monitor でこのパターンを示します (はい、ペアで、理由はわかりません)。

method call sender=:1.1036 -> dest=:1.1028 serial=5088 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696242"
method call sender=:1.1036 -> dest=:1.1232 serial=5089 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696242"

上記のメッセージはトリガーされませんmessageStatusChangedが、次のメッセージはトリガーされます (再びペアで):

method call sender=:1.1036 -> dest=:1.1028 serial=5090 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696353"
method call sender=:1.1036 -> dest=:1.1232 serial=5091 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696353"
method call sender=:1.1036 -> dest=:1.1028 serial=5092 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHATMESSAGE 3535369 STATUS RECEIVED"
method call sender=:1.1036 -> dest=:1.1232 serial=5093 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHATMESSAGE 3535369 STATUS RECEIVED"

2 番目の例では、CHATfrom thesendertothereceiverが表示されるだけでなく、実際にはCHATMESSAGE、シリアル番号3535369STATUShas been が含まれていることも示されRECEIVEDます。後者のみがトリガーされるようmessageStatusChangedです。

問題は、最初のメッセージが を作成することになっているCHATMESSAGE {serial} STATUS RECEIVEDかどうかです。はいの場合: これは Skype クライアントのバグですか? いいえの場合:CHATMESSAGEが確立されたチャットの更新の場合にのみ送信される場合、別のイベントをリッスンする必要がありますか?

答えはまだわかりませんが、これが役立つかもしれません。

于 2013-03-07T23:19:45.973 に答える