1.SessionClient是沟通application和p2p模块的中间桥梁。比如,再共享文件的例子中。SessionClient就被派生成FileShareSessionClient。要传输的文件列表之类的东西都是由他控制.
2.只要有信息进出的时候,SessionManager都要调用SessionClient::OnSessionCreate()
3.Resource Allocator/Resource Classes是控制文件传输或者语音传输等等资源的。他们需要从Session中获得TransportChannel进行事实上的数据传输。
4.有两种Channel,一种是negotiation channel,一种是transport channel。
5.每个Session都持有一个或者多个Transport对象。Session是由SessionManager创建的。如果是进入的连接,SessionClient直接把这个连接给Session
anager,如果是出去的连接,session wrapper显示创建一个Session.在文件共享例子中这个session wrapper就是FileShareSession.
6.Session会把stanza的到来事件提醒SessionClient.
7.Session类型被定义在stanza的一个Unique ID中。
8.P2PTransport里面持有多个P2PTransportChannel。这些都是候选Channel。按照ICT,这些Channel事所有源IP和目的IP的组合。P2P传输是从这一堆Channel里面选出一个最好的。
9.PortAllocator事专门响应P2PTransport的请求生成所需要的端口的。
2.只要有信息进出的时候,SessionManager都要调用SessionClient::OnSessionCreate()
3.Resource Allocator/Resource Classes是控制文件传输或者语音传输等等资源的。他们需要从Session中获得TransportChannel进行事实上的数据传输。
4.有两种Channel,一种是negotiation channel,一种是transport channel。
5.每个Session都持有一个或者多个Transport对象。Session是由SessionManager创建的。如果是进入的连接,SessionClient直接把这个连接给Session
anager,如果是出去的连接,session wrapper显示创建一个Session.在文件共享例子中这个session wrapper就是FileShareSession.
6.Session会把stanza的到来事件提醒SessionClient.
7.Session类型被定义在stanza的一个Unique ID中。
8.P2PTransport里面持有多个P2PTransportChannel。这些都是候选Channel。按照ICT,这些Channel事所有源IP和目的IP的组合。P2P传输是从这一堆Channel里面选出一个最好的。
9.PortAllocator事专门响应P2PTransport的请求生成所需要的端口的。