jasagiri @ ウィキ

WaveProtocol

最終更新:

jasagiri

- view
管理者のみ編集可
公式のConsoleClientを実行して眺めてみる。

./run-server

CertificateManagerImpl <init>
WaveServerImpl <init>
RpcInetSocketAddressFactory <init>

WaveXmppComponent initialize
WaveXmppComponent start
ServerMain run

WaveXmppComponent processPacket
recived XMPP packet:
<iq type="get" id="999-9" from="resultのto" to="resultのfrom">
 <query xmls="http://jabber.org/protocol/disco#info"/>
</iq>

WaveXmppComponent sendPacket
sent XMPP packet:

<iq type="result" id="999-9" from="recivedのto" to="recivedのfrom">
 <query xmlns="http://jabber.org/protocol/disco#info">
   <identity category="collaboration" type="google-wave" name="Google Prototype Wave Server - FedOne"/>
   <feature var="http://waveprotocol.org/protocol/0.2/waveserver"/>
 </query>
</iq>


./run-client <LoginName1>

ServerRpcProvider$Connection <init>
SocketChannel

(<LoginName1>)
/new

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 0
   history_hash: "wave://<DNSNAME>/<WaveID>/conv+root"
 }
 author: "<LoginName1>@<DNSNAME>"
 operation {
   add_participant: "<LoginName1>@<DNSNAME>"
 }
}
signature {
 signature_bytes: "<エンコード文字1>"
 signer_id: "<エンコード文字2>"
 signature_algorithm: SHA1_RSA
}

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 0
     history_hash: "wave://<DNSNAME>/<WaveID>/conv+root"
   }
   author: "<LoginName1>@<DNSNAME>"
   operation {
     add_participant: "<LoginName1>@<DNSNAME>"
   }
 }
 signature {
   signature_bytes: "<エンコード文字1>"
   signer_id: "<エンコード文字2>"
   signature_algorithm: SHA1_RSA
 }
}
hashed_version_applied_at {
 version: 0
 history_hash: "wave://<DNSNAME>/<WaveID>/conv+root"
}
operations_applied: 1
application_timestamp: <13桁の数字>



(<LoginName1>)
/open 0




(<LoginName1>)
hello

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 1
   history_hash: "<何かのエンコード文字>"
 }
 author: "<LoginName1>@<DNSNAME>"
 operation {
   mutate_document {
     document_id: "main"
     document_operation {
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "hello"
       }
     }
   }
 }
}
signature {
 signature_bytes: "<エンコード文字1>"
 signer_id: "<エンコード文字2>"
 signature_algorithm: SHA1_RSA
}


(<LoginName1>)
world

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 2
   history_hash: "<何かのエンコード文字>"
 }
 author: "<LoginName>"
 operation {
   mutate_document {
     document_id: "main"
     document_operation {
       component {
         retain_item_count: 7
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "world"
       }
     }
   }
 }
}
signature {
 signature_bytes: "<エンコード文字3>"
 signer_id: "<エンコード文字2>"
 signature_algorithm: SHA1_RSA
}

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 2
     history_hash: "<何かしらエンコード文字>"
   }
   mutate_document {
     document_id: "main"
     document_operation {
       component {
         retain_item_count: 7
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "world"
       }
     }
   }
 }
}
signature {
 signature_bytes: "<エンコード文字3>"
 signer_id: "<エンコード文字2>"
 signature_algorithm: SHA1_RSA
}
hashed_version_applied_at {
 version: 2
 history_hash: <ハッシュ文字>
}
operations_applied: 1
application_timestamp: <13桁の数字>



(<LoginName1>)
isn't this nice?

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 3
   history_hash: "<何かのエンコード文字>"
 }
 author: "<LoginName1>@<DNSNAME>"
 operation {
   mutate_document {
     document_id: "main"
     document_operation {
       component {
         retain_item_count: 14
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "isn\'t ths nice?"
       }
     }
   }
 }
}
signature {
 signature_bytes: "<エンコード文字4>"
 signer_id: "<エンコード文字>"
 signature_algorithm: SHA1_RSA
}



WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 3
     history_hash: "<何かしらエンコード文字>"
   }
   mutate_document {
     document_id: "main"
     document_operation {
       component {
         retain_item_count: 14
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "isn\'t ths nice?"
       }
     }
   }
 }
}
signature {
 signature_bytes: "<エンコード文字3>"
 signer_id: "<エンコード文字2>"
 signature_algorithm: SHA1_RSA
}
hashed_version_applied_at {
 version: 3
 history_hash: <ハッシュ文字>
}
operations_applied: 1
application_timestamp: <13桁の数字>






./run-client <LoginName2>

ServerRpcProvider$Connection <init>
SocketChannel



(<LoginName1>)
/add <LoginName2>@<DNSNAME>

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 4
   history_hash: "ハッシュ"
 }
 author: "<LoginName1>@<DNSNAME>"
 operation {
   add_participant: "<LoginName2>@<DNSNAME>"
 }
}
signature {
 signature_bytes: "ハッシュ"
 signer_id: "ハッシュ"
 signature_algorithm: SHA1_RSA
}


### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 4
     history_hash: "ハッシュ"
   }
   author: "<LoginName1>@<DNSNAME>"
   operation {
     add_participant: "<LoginName2>@<DNSNAME>"
   }
 }
 signature {
   signature_bytes: "ハッシュ"
   signer_id: "ハッシュ"
   signature_algorithm: SHA1_RSA
 }
}
hashed_version_applied_at {
 version: 4
 history_hash: "ハッシュ"
}
operations_applied: 1
application_timestamo: <13桁の数字>





(<LoginName2>)
/open 0






(<LoginName2>)
thanks for inviting me

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 5
   history_hash: "ハッシュ"
 }
 author: "<LoginName1>@<DNSNAME>"
 operation {
   mutate_document {
     document_id: "main"
     document_opearation {
       component {
         retain_item_count: 32
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName1>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "thanks for inviteng me"
       }
     }
   }
 }
}
signature {
 signature_bytes: "ハッシュ"
 signer_id: "ハッシュ"
 signature_algorithm: SHA1_RSA
}


### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 5
     history_hash: "ハッシュ"
   }
   author: "<LoginName1>@<DNSNAME>"
   operation {
    mutate_document {
     document_id: "main"
     document_operation {
       component {
         retain_item_count: 32
       }
       component {
         element_start {
           type: "line"
           attribute {
             key: "by"
             value: "<LoginName2>@<DNSNAME>"
           }
         }
       }
       component {
         element_end: true
       }
       component {
         characters: "thanks for inviteng me"
       }
     }
   }
 }
 signature {
   signature_bytes: "ハッシュ"
   signer_id: "ハッシュ"
   signature_algorithm: SHA1_RSA
 }
}
hashed_version_applied_at {
 version: 5
 history_hash: "ハッシュ"
}
operations_applied: 1
application_timestamo: <13桁の数字>


即時にそれぞれのコンソールに結果が表示される。
クライアントに送ってるところはログに出ないのか...。

(<LoginName2>)
/remove <LoginName1>@<DNSNAME>

WaveServerImpl isLocalWavelet
### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Got submit: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] delta: delta {
 hashed_version {
   version: 6
   history_hash: "ハッシュ"
 }
 author "<LoginName2>@<DNSNAME>"
 operation {
   remove_participant: "<LoginName1>@<DNSNAME>"
 }
}
signature {
 signature_bytes: "ハッシュ"
 signer_id: "ハッシュ"
 signature_algorithm: SHA1_RSA
}

### WS is local? [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] = true
WaveServerImpl submitDelta
### WS: Submit result: [WaveID:<DNSNAME!WaveID>/[WaveletId:<DNSNAME!conv+root>] appliedDelta: signed_original_delta {
 delta {
   hashed_version {
     version: 6
     history_hash: "ハッシュ"
   }
   author: "<LoginName2>@<DNSNAME>"
   operation {
     remove_paticipant: "<LoginName1>@<DNSNAME>"
   }
 }
 signature {
   signature_bytes: "ハッシュ"
   signer_id: "ハッシュ"
   signature_algorithm: SHA1_RSA
 }
}
hashed_version_applied_at {
 version: 6
 history_hash: "ハッシュ"
}
operations_applied: 1
application_timestamo: <13桁の数字>


相手を強制的に切断できる
記事メニュー
人気記事ランキング
目安箱バナー