Tubes: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
{{TOCright}} |
|||
=Data transfer via Telepathy= |
==Data transfer via Telepathy== |
||
A tube is a [[Telepathy]] primitive for sending and receiving data, which can be to one person or to a group of people. Tubes can carry reliable byte streams or unreliable datagrams by analogy to TCP or UDP. When a tube is to a group, some different semantics may be more appropriate, since a shared stream is not coherent. It is up to the connection manager how tubes are implemented on top of its protocol. |
A tube is a [[Telepathy]] primitive for sending and receiving data, which can be to one person or to a group of people. Tubes can carry reliable byte streams or unreliable datagrams by analogy to TCP or UDP. When a tube is to a group, some different semantics may be more appropriate, since a shared stream is not coherent. It is up to the connection manager how tubes are implemented on top of its protocol. |
||
Line 15: | Line 16: | ||
Stream Tubes wrap TCP/IP sockets and are more suited to streaming data between two participants. |
Stream Tubes wrap TCP/IP sockets and are more suited to streaming data between two participants. |
||
==D-Bus Tubes== |
===D-Bus Tubes=== |
||
A multi-user tube is represented as a D-Bus bus, and the connection manager makes a mapping between the participants in the tube and D-Bus bus name. Clients can then take advantage of D-Bus's serialisation and the bindings so that they have to do less protocol work. |
A multi-user tube is represented as a D-Bus bus, and the connection manager makes a mapping between the participants in the tube and D-Bus bus name. Clients can then take advantage of D-Bus's serialisation and the bindings so that they have to do less protocol work. |
||
==Stream Tubes== |
===Stream Tubes=== |
||
Stream Tubes allow you to establish TCP connections with contacts or participants in a MUC. |
Stream Tubes allow you to establish TCP connections with contacts or participants in a MUC. |
||
Line 59: | Line 60: | ||
See [[Low-level_Activity_API#Stream_Tubes]] for more documentation. |
See [[Low-level_Activity_API#Stream_Tubes]] for more documentation. |
||
==Tubes Channel Type== |
===Tubes Channel Type=== |
||
In terms of the Telepathy API, we have created a channel type which has methods for enumerating existing tubes and requesting new ones. The channel might be attached to an existing channel (such as a MUC), in which case it will be automatically closed when the underlying channel is closed. |
In terms of the Telepathy API, we have created a channel type which has methods for enumerating existing tubes and requesting new ones. The channel might be attached to an existing channel (such as a MUC), in which case it will be automatically closed when the underlying channel is closed. |
||
==Proposed Standards== |
===Proposed Standards=== |
||
See [[Telepathy#Proposed Standards]] for proto XEPs. |
See [[Telepathy#Proposed Standards]] for proto XEPs. |
||
==See also== |
===See also=== |
||
*[[Low-level_Activity_API#Tubes]] |
*[[Low-level_Activity_API#Tubes]] |
||
*[[Activity sharing]] |
*[[Activity sharing]] |
Revision as of 01:30, 2 May 2009
Data transfer via Telepathy
A tube is a Telepathy primitive for sending and receiving data, which can be to one person or to a group of people. Tubes can carry reliable byte streams or unreliable datagrams by analogy to TCP or UDP. When a tube is to a group, some different semantics may be more appropriate, since a shared stream is not coherent. It is up to the connection manager how tubes are implemented on top of its protocol.
There are two types of Tubes at present: D-Bus Tubes and Stream Tubes.
D-Bus Tubes provide D-Bus functionality to signal and call methods on everyone in the room.
Stream Tubes wrap TCP/IP sockets and are more suited to streaming data between two participants.
D-Bus Tubes
A multi-user tube is represented as a D-Bus bus, and the connection manager makes a mapping between the participants in the tube and D-Bus bus name. Clients can then take advantage of D-Bus's serialisation and the bindings so that they have to do less protocol work.
Stream Tubes
Stream Tubes allow you to establish TCP connections with contacts or participants in a MUC.
.---------. |TP client|--|listening socket| B '---------' ^ C | .----------. |Connection| | Manager | A '----------' | _____ __/ \___ ___/ \ / \____ | \ \__ / \ Internets / / \ / \ | ___ / \____/\ / \____/ \____/ ^ | .----------. |Connection| F | Manager |-|listening socket| E '----------' ^ | .---------. |TP client| D '---------'
Guillaume Desmottes on Stream Tubes more more
See Low-level_Activity_API#Stream_Tubes for more documentation.
Tubes Channel Type
In terms of the Telepathy API, we have created a channel type which has methods for enumerating existing tubes and requesting new ones. The channel might be attached to an existing channel (such as a MUC), in which case it will be automatically closed when the underlying channel is closed.
Proposed Standards
See Telepathy#Proposed Standards for proto XEPs.