doc: revert arrows chars in relay protocol
This commit is contained in:
parent
9fa3609c85
commit
0c7d7c3fdc
@ -32,11 +32,11 @@ The _clients_ are connected to _relay_ like shown in this diagram:
|
||||
....
|
||||
┌──────────┐ Workstation
|
||||
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
||||
│ irc │◀──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||
└────────┘ └──╢ │ ║◀───┘ ┌──────────┐
|
||||
...... ║ WeeChat │ Relay ║◀───────┤ client 2 │ Mobile device
|
||||
┌────────┐ ┌──╢ │ ║◀───┐ └──────────┘ (Android, iPhone ...)
|
||||
│ jabber │◀──┘ ╚═══════════╧═══════╝ │ ......
|
||||
│ irc │◄──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||
└────────┘ └──╢ │ ║◄───┘ ┌──────────┐
|
||||
...... ║ WeeChat │ Relay ║◄───────┤ client 2 │ Mobile device
|
||||
┌────────┐ ┌──╢ │ ║◄───┐ └──────────┘ (Android, iPhone ...)
|
||||
│ jabber │◄──┘ ╚═══════════╧═══════╝ │ ......
|
||||
└────────┘ │ ┌──────────┐
|
||||
...... └───┤ client N │ Other devices
|
||||
└──────────┘
|
||||
@ -1510,7 +1510,7 @@ Example:
|
||||
|
||||
....
|
||||
┌────┐
|
||||
│ 41 │ ────▶ 65 (0x41: "A")
|
||||
│ 41 │ ────► 65 (0x41: "A")
|
||||
└────┘
|
||||
....
|
||||
|
||||
@ -1526,11 +1526,11 @@ Examples:
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────▶ 123456
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────► 123456
|
||||
└────┴────┴────┴────┘
|
||||
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FE │ 1D │ C0 │ ────▶ -123456
|
||||
│ FF │ FE │ 1D │ C0 │ ────► -123456
|
||||
└────┴────┴────┴────┘
|
||||
....
|
||||
|
||||
@ -1545,13 +1545,13 @@ Examples:
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ 1234567890
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► 1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
length '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ -1234567890
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► -1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └────────────────────────────────────────────────────┘
|
||||
length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
@ -1566,7 +1566,7 @@ Example:
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────▶ "hello"
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────► "hello"
|
||||
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
|
||||
└─────────────────┘ └──────────────────────┘
|
||||
length 'h' 'e' 'l' 'l' 'o'
|
||||
@ -1576,7 +1576,7 @@ An empty string has a length of zero:
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────▶ ""
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────► ""
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
length
|
||||
@ -1586,7 +1586,7 @@ A _NULL_ string (NULL pointer in C) has a length of -1:
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FF │ FF │ FF │ ────▶ NULL
|
||||
│ FF │ FF │ FF │ FF │ ────► NULL
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
length
|
||||
@ -1606,7 +1606,7 @@ Example:
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────▶ 0x1a2b3c4d5
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────► 0x1a2b3c4d5
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └──────────────────────────────────────────┘
|
||||
length '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
|
||||
@ -1616,7 +1616,7 @@ A _NULL_ pointer has a length of 1 with value 0:
|
||||
|
||||
....
|
||||
┌────╥────┐
|
||||
│ 01 ║ 00 │ ────▶ NULL (0x0)
|
||||
│ 01 ║ 00 │ ────► NULL (0x0)
|
||||
└────╨────┘
|
||||
└──┘ └──┘
|
||||
length 0
|
||||
@ -1631,7 +1631,7 @@ Example:
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────▶ 1321993456
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────► 1321993456
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
|
||||
@ -1653,7 +1653,7 @@ Example:
|
||||
|
||||
....
|
||||
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────▶ { 'key1' => 'abc',
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────► { 'key1' => 'abc',
|
||||
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||
type type count item 1 item 2
|
||||
@ -1880,7 +1880,7 @@ Example of array with two strings:
|
||||
type number of strings length
|
||||
|
||||
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────▶ [ "abc", "de" ]
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────► [ "abc", "de" ]
|
||||
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
|
||||
└────────────┘ └─────────────────┘ └───────┘
|
||||
'a' 'b' 'c' length 'd' 'e'
|
||||
@ -1896,7 +1896,7 @@ Example of array with three integers:
|
||||
type number of integers 123 (0x7B)
|
||||
|
||||
──╥────┬────┬────┬────╥────┬────┬────┬────┐
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────▶ [ 123, 456, 789 ]
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────► [ 123, 456, 789 ]
|
||||
──╨────┴────┴────┴────╨────┴────┴────┴────┘
|
||||
└─────────────────┘ └─────────────────┘
|
||||
456 (0x1C8) 789 (0x315)
|
||||
@ -1906,7 +1906,7 @@ A _NULL_ array:
|
||||
|
||||
....
|
||||
┌─────╥────┬────┬────┬────┐
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────▶ NULL
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────► NULL
|
||||
└─────╨────┴────┴────┴────┘
|
||||
└───┘ └─────────────────┘
|
||||
type number of strings
|
||||
@ -1920,49 +1920,49 @@ A _NULL_ array:
|
||||
│ Client ├ ─ ─ ─ ─(network)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
||||
└────────┘ └───────┘ └─────────┘
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ open socket ║ add client ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
||||
║ ║ and options ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
║ msg: id: "handshake" ... ║ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: init password=xxx,... ║ authenticate client ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: hdata buffer ... ╟───────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: hdata buffer ... ╟───────────────────────► ║
|
||||
║ sync ... ║ request hdata ║ read hdata
|
||||
║ ║ ║ values
|
||||
║ ║ ◀───────────────────────╢
|
||||
║ ◀───────────────────────────────╢ hdata ║
|
||||
║ ║ ◄───────────────────────╢
|
||||
║ ◄───────────────────────────────╢ hdata ║
|
||||
create ║ msg: hda buffer ║ ║
|
||||
buffers ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: input ... ╟───────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: input ... ╟───────────────────────► ║
|
||||
║ ║ send data to buffer ║ send data
|
||||
║ ║ ║ to buffer
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║ signal
|
||||
║ ║ ◀───────────────────────╢ received
|
||||
║ ◀───────────────────────────────╢ signal XXX ║ (hooked by
|
||||
║ ║ ◄───────────────────────╢ received
|
||||
║ ◄───────────────────────────────╢ signal XXX ║ (hooked by
|
||||
update ║ msg: id: "_buffer_..." ║ ║ relay)
|
||||
buffers ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: ping ... ║ ║
|
||||
║ ║ ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
measure ║ msg: id: "_pong" ... ║ ║
|
||||
response ║ ║ ║
|
||||
time ║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: quit ║ disconnect client ║
|
||||
║ ║ ║
|
||||
....
|
||||
|
@ -36,11 +36,11 @@ Les _clients_ sont connectés au _relay_ comme dans le diagramme ci-dessous :
|
||||
....
|
||||
┌──────────┐ Station de travail
|
||||
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
||||
│ irc │◀──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||
└────────┘ └──╢ │ ║◀───┘ ┌──────────┐
|
||||
...... ║ WeeChat │ Relay ║◀───────┤ client 2 │ Appareil mobile
|
||||
┌────────┐ ┌──╢ │ ║◀───┐ └──────────┘ (Android, iPhone ...)
|
||||
│ jabber │◀──┘ ╚═══════════╧═══════╝ │ ......
|
||||
│ irc │◄──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||
└────────┘ └──╢ │ ║◄───┘ ┌──────────┐
|
||||
...... ║ WeeChat │ Relay ║◄───────┤ client 2 │ Appareil mobile
|
||||
┌────────┐ ┌──╢ │ ║◄───┐ └──────────┘ (Android, iPhone ...)
|
||||
│ jabber │◄──┘ ╚═══════════╧═══════╝ │ ......
|
||||
└────────┘ │ ┌──────────┐
|
||||
...... └───┤ client N │ Autres appareils
|
||||
└──────────┘
|
||||
@ -1547,7 +1547,7 @@ Exemple :
|
||||
|
||||
....
|
||||
┌────┐
|
||||
│ 41 │ ────▶ 65 (0x41: "A")
|
||||
│ 41 │ ────► 65 (0x41: "A")
|
||||
└────┘
|
||||
....
|
||||
|
||||
@ -1563,11 +1563,11 @@ Exemples :
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────▶ 123456
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────► 123456
|
||||
└────┴────┴────┴────┘
|
||||
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FE │ 1D │ C0 │ ────▶ -123456
|
||||
│ FF │ FE │ 1D │ C0 │ ────► -123456
|
||||
└────┴────┴────┴────┘
|
||||
....
|
||||
|
||||
@ -1583,13 +1583,13 @@ Exemples :
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ 1234567890
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► 1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
long. '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ -1234567890
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► -1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └────────────────────────────────────────────────────┘
|
||||
long. '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
@ -1605,7 +1605,7 @@ Exemple :
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────▶ "hello"
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────► "hello"
|
||||
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
|
||||
└─────────────────┘ └──────────────────────┘
|
||||
longueur 'h' 'e' 'l' 'l' 'o'
|
||||
@ -1615,7 +1615,7 @@ Une chaîne vide a une longueur de zéro :
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────▶ ""
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────► ""
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
longueur
|
||||
@ -1625,7 +1625,7 @@ Une chaîne _NULL_ (pointeur NULL en C) a une longueur de -1 :
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FF │ FF │ FF │ ────▶ NULL
|
||||
│ FF │ FF │ FF │ FF │ ────► NULL
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
longueur
|
||||
@ -1647,7 +1647,7 @@ Exemple :
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────▶ 0x1a2b3c4d5
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────► 0x1a2b3c4d5
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └──────────────────────────────────────────┘
|
||||
long. '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
|
||||
@ -1657,7 +1657,7 @@ Un pointeur _NULL_ a une longueur de 1 avec la valeur 0 :
|
||||
|
||||
....
|
||||
┌────╥────┐
|
||||
│ 01 ║ 00 │ ────▶ NULL (0x0)
|
||||
│ 01 ║ 00 │ ────► NULL (0x0)
|
||||
└────╨────┘
|
||||
└──┘ └──┘
|
||||
long. 0
|
||||
@ -1673,7 +1673,7 @@ Exemple :
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────▶ 1321993456
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────► 1321993456
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
long. '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
|
||||
@ -1696,7 +1696,7 @@ Exemple :
|
||||
|
||||
....
|
||||
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────▶ { 'key1' => 'abc',
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────► { 'key1' => 'abc',
|
||||
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||
type type nombre élément 1 élément 2
|
||||
@ -1928,7 +1928,7 @@ Exemple de tableau avec deux chaînes de caractères :
|
||||
type nombre de chaînes longueur
|
||||
|
||||
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────▶ [ "abc", "de" ]
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────► [ "abc", "de" ]
|
||||
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
|
||||
└────────────┘ └─────────────────┘ └───────┘
|
||||
'a' 'b' 'c' longueur 'd' 'e'
|
||||
@ -1944,7 +1944,7 @@ Exemple de tableau avec trois entiers :
|
||||
type nombre d'entiers 123 (0x7B)
|
||||
|
||||
──╥────┬────┬────┬────╥────┬────┬────┬────┐
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────▶ [ 123, 456, 789 ]
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────► [ 123, 456, 789 ]
|
||||
──╨────┴────┴────┴────╨────┴────┴────┴────┘
|
||||
└─────────────────┘ └─────────────────┘
|
||||
456 (0x1C8) 789 (0x315)
|
||||
@ -1954,7 +1954,7 @@ Un tableau _NULL_ :
|
||||
|
||||
....
|
||||
┌─────╥────┬────┬────┬────┐
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────▶ NULL
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────► NULL
|
||||
└─────╨────┴────┴────┴────┘
|
||||
└───┘ └─────────────────┘
|
||||
type nombre de chaînes
|
||||
@ -1968,49 +1968,49 @@ Un tableau _NULL_ :
|
||||
│ Client ├ ─ ─ ─ ─ (réseau)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
||||
└────────┘ └───────┘ └─────────┘
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ ouverture socket ║ ajout du client ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: handshake password=xxx,... ║ négociation algos ║
|
||||
║ ║ et options ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
║ msg: id: "handshake" ... ║ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: init password=xxx,... ║ authentification ║
|
||||
║ ║ client ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: hdata buffer ... ╟───────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: hdata buffer ... ╟───────────────────────► ║
|
||||
║ sync ... ║ demande de hdata ║ lecture
|
||||
║ ║ ║ valeurs
|
||||
║ ║ ◀───────────────────────╢ hdata
|
||||
║ ◀───────────────────────────────╢ hdata ║
|
||||
║ ║ ◄───────────────────────╢ hdata
|
||||
║ ◄───────────────────────────────╢ hdata ║
|
||||
créat° ║ msg: hda buffer ║ ║
|
||||
tampons ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: input ... ╟───────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: input ... ╟───────────────────────► ║
|
||||
║ ║ envoi données au tampon ║ envoi données
|
||||
║ ║ ║ au tampon
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║ signal
|
||||
║ ║ ◀───────────────────────╢ reçu
|
||||
║ ◀───────────────────────────────╢ signal XXX ║ (accroché
|
||||
║ ║ ◄───────────────────────╢ reçu
|
||||
║ ◄───────────────────────────────╢ signal XXX ║ (accroché
|
||||
MAJ ║ msg: id: "_buffer_..." ║ ║ par relay)
|
||||
tampons ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: ping ... ║ ║
|
||||
║ ║ ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
mesure ║ msg: id: "_pong" ... ║ ║
|
||||
temps ║ ║ ║
|
||||
réponse ║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: quit ║ déconnexion du client ║
|
||||
║ ║ ║
|
||||
....
|
||||
|
@ -39,11 +39,11 @@
|
||||
....
|
||||
┌────────────────┐ ワークステーション
|
||||
┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、
|
||||
│ irc │◀──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
|
||||
└────────┘ └──╢ │ ║◀───┘ ┌────────────────┐
|
||||
...... ║ WeeChat │ リレー ║◀───────┤ クライアント 2 │ 携帯デバイス
|
||||
┌────────┐ ┌──╢ │ ║◀───┐ └────────────────┘ (Android、iPhone ...)
|
||||
│ jabber │◀──┘ ╚═══════════╧════════╝ │ ......
|
||||
│ irc │◄──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
|
||||
└────────┘ └──╢ │ ║◄───┘ ┌────────────────┐
|
||||
...... ║ WeeChat │ リレー ║◄───────┤ クライアント 2 │ 携帯デバイス
|
||||
┌────────┐ ┌──╢ │ ║◄───┐ └────────────────┘ (Android、iPhone ...)
|
||||
│ jabber │◄──┘ ╚═══════════╧════════╝ │ ......
|
||||
└────────┘ │ ┌────────────────┐
|
||||
...... └───┤ クライアント N │ その他のデバイス
|
||||
└────────────────┘
|
||||
@ -1524,7 +1524,7 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
|
||||
|
||||
....
|
||||
┌────┐
|
||||
│ 41 │ ────▶ 65 (0x41: "A")
|
||||
│ 41 │ ────► 65 (0x41: "A")
|
||||
└────┘
|
||||
....
|
||||
|
||||
@ -1540,11 +1540,11 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────▶ 123456
|
||||
│ 00 │ 01 │ E2 │ 40 │ ────► 123456
|
||||
└────┴────┴────┴────┘
|
||||
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FE │ 1D │ C0 │ ────▶ -123456
|
||||
│ FF │ FE │ 1D │ C0 │ ────► -123456
|
||||
└────┴────┴────┴────┘
|
||||
....
|
||||
|
||||
@ -1559,13 +1559,13 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ 1234567890
|
||||
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► 1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
length '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────▶ -1234567890
|
||||
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ────► -1234567890
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └────────────────────────────────────────────────────┘
|
||||
length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
@ -1580,7 +1580,7 @@ length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────▶ "hello"
|
||||
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ────► "hello"
|
||||
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
|
||||
└─────────────────┘ └──────────────────────┘
|
||||
length 'h' 'e' 'l' 'l' 'o'
|
||||
@ -1590,7 +1590,7 @@ length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────▶ ""
|
||||
│ 00 │ 00 │ 00 │ 00 │ ────► ""
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
length
|
||||
@ -1600,7 +1600,7 @@ _NULL_ 文字列 (C 言語の NULL ポインタ) を表現するにはの長さ
|
||||
|
||||
....
|
||||
┌────┬────┬────┬────┐
|
||||
│ FF │ FF │ FF │ FF │ ────▶ NULL
|
||||
│ FF │ FF │ FF │ FF │ ────► NULL
|
||||
└────┴────┴────┴────┘
|
||||
└─────────────────┘
|
||||
length
|
||||
@ -1620,7 +1620,7 @@ _NULL_ 文字列 (C 言語の NULL ポインタ) を表現するにはの長さ
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────▶ 0x1a2b3c4d5
|
||||
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ────► 0x1a2b3c4d5
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └──────────────────────────────────────────┘
|
||||
length '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
|
||||
@ -1630,7 +1630,7 @@ _NULL_ ポインタを表現するには長さを 1 で値を 0 にしてくだ
|
||||
|
||||
....
|
||||
┌────╥────┐
|
||||
│ 01 ║ 00 │ ────▶ NULL (0x0)
|
||||
│ 01 ║ 00 │ ────► NULL (0x0)
|
||||
└────╨────┘
|
||||
└──┘ └──┘
|
||||
length 0
|
||||
@ -1645,7 +1645,7 @@ length 0
|
||||
|
||||
....
|
||||
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────▶ 1321993456
|
||||
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ────► 1321993456
|
||||
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
|
||||
└──┘ └───────────────────────────────────────────────┘
|
||||
length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
|
||||
@ -1667,7 +1667,7 @@ length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
|
||||
|
||||
....
|
||||
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────▶ { 'key1' => 'abc',
|
||||
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ────► { 'key1' => 'abc',
|
||||
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||
type type count item 1 item 2
|
||||
@ -1894,7 +1894,7 @@ infolist buffer
|
||||
type number of strings length
|
||||
|
||||
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────▶ [ "abc", "de" ]
|
||||
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ────► [ "abc", "de" ]
|
||||
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
|
||||
└────────────┘ └─────────────────┘ └───────┘
|
||||
'a' 'b' 'c' length 'd' 'e'
|
||||
@ -1910,7 +1910,7 @@ infolist buffer
|
||||
type number of integers 123 (0x7B)
|
||||
|
||||
──╥────┬────┬────┬────╥────┬────┬────┬────┐
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────▶ [ 123, 456, 789 ]
|
||||
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ────► [ 123, 456, 789 ]
|
||||
──╨────┴────┴────┴────╨────┴────┴────┴────┘
|
||||
└─────────────────┘ └─────────────────┘
|
||||
456 (0x1C8) 789 (0x315)
|
||||
@ -1920,7 +1920,7 @@ _NULL_ 配列:
|
||||
|
||||
....
|
||||
┌─────╥────┬────┬────┬────┐
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────▶ NULL
|
||||
│ str ║ 00 │ 00 │ 00 │ 00 │ ────► NULL
|
||||
└─────╨────┴────┴────┴────┘
|
||||
└───┘ └─────────────────┘
|
||||
type number of strings
|
||||
@ -1935,49 +1935,49 @@ _NULL_ 配列:
|
||||
│ クライアント ├ ─(ネットワーク)─ ┤ リレー ├──────────────────┤ WeeChat │
|
||||
└──────────────┘ └────────┘ └─────────┘
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ ソケットをオープン ║ クライアントを追加 ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
||||
║ ║ and options ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
║ msg: id: "handshake" ... ║ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: init password=xxx,... ║ クライアントを初期化/許可 ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: hdata buffer ... ╟─────────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: hdata buffer ... ╟─────────────────────────► ║
|
||||
║ sync ... ║ hdata の要求 ║ hdata
|
||||
║ ║ ║ の値を読み出し
|
||||
║ ║ ◀─────────────────────────╢
|
||||
║ ◀───────────────────────────────╢ hdata ║
|
||||
║ ║ ◄─────────────────────────╢
|
||||
║ ◄───────────────────────────────╢ hdata ║
|
||||
バッファ ║ msg: hda buffer ║ ║
|
||||
を作成 ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
║ cmd: input ... ╟─────────────────────────▶ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: input ... ╟─────────────────────────► ║
|
||||
║ ║ バッファにデータを送信 ║ バッファに
|
||||
║ ║ ║ データを送信
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║ シグナル
|
||||
║ ║ ◀─────────────────────────╢ の受信
|
||||
║ ◀───────────────────────────────╢ シグナル XXX ║ (リレー
|
||||
║ ║ ◄─────────────────────────╢ の受信
|
||||
║ ◄───────────────────────────────╢ シグナル XXX ║ (リレー
|
||||
バッファ ║ msg: id: "_buffer_..." ║ ║ がフック)
|
||||
を更新 ║ ║ ║
|
||||
║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: ping ... ║ ║
|
||||
║ ║ ║
|
||||
║ ◀───────────────────────────────╢ ║
|
||||
║ ◄───────────────────────────────╢ ║
|
||||
応答 ║ msg: id: "_pong" ... ║ ║
|
||||
時間 ║ ║ ║
|
||||
を計測 ║ ........ ║ ........ ║
|
||||
║ ║ ║
|
||||
╟───────────────────────────────▶ ║ ║
|
||||
╟───────────────────────────────► ║ ║
|
||||
║ cmd: quit ║ クライアントを切断 ║
|
||||
║ ║ ║
|
||||
....
|
||||
|
Loading…
x
Reference in New Issue
Block a user