Feature #94
closedAdd support for the SSL protocol
100%
Description
Updated by Vincent Le Goff over 7 years ago
- Status changed from Open to In Progress
Using Twisted will require far more than changing the client structure, at least, in design. An alternative would be to place all the networking infrastructure in a separate thread (this thread will actually run the Twisted reactor). It might be better to keep Twisted in the main loop and place the user interface in another thread, however. Both strategies will have to be tested. The latter would allow to create simple differed tasks, supporting client timers, for instance.
Updated by Vincent Le Goff over 7 years ago
There is some useful information on how to have twisted and wxPython's event loops peacefully co-exist. This post describes several methods to do it. It seems there's no real caution to be considered, as long as communication between threads is carefully planned, which is already the case. Additionally, Twisted already has an interesting documentation describing how to handle threads. I would be in favor of having Twisted's reaction running in the main thread, and wxPython in another one.
The client hierarchy, meanwhile, could be written as a simple Twisted protocol and a single factory instantiated before the application starts. Different methods of the reactor can be used to connect a protocol through simple TCP or SSL. However, it remains interesting to take into account the fact that, in the future, some other factories might be created, to support SSH connection, for instance.
Updated by Vincent Le Goff over 7 years ago
The networking protocol is now going to be handled by twisted.conch.telnet.Telnet which provides support for common Telnet options and a convenient handling of messages. Seeing as the network and UI will run in separate threads, however, it is necessary to use an adequate system to communicate between them.
Updated by Vincent Le Goff over 7 years ago
- Checklist item Re-structure the client's hierarchy to allow other protocols. set to Done
The new structure supported Twisted was added in the commit e9cc2ac8f9e8b1975bfc30b968bcd9c324cf780b. The wxreactor was eventually used to handle both Twisted and wxPython's event loop. The networking strategy had to be modified, but is now closer to a true asynchronous application.
Updated by Vincent Le Goff over 7 years ago
- Checklist item Create the SSL wrapper redirecting to the client's main display. set to Done
Updated by Vincent Le Goff over 7 years ago
- Checklist item Add a choice of protocol when configuring worlds. set to Done
- Status changed from In Progress to Closed
- % Done changed from 60 to 100
Added in commit 7c02308fdee035771b363a112ac42cd3c4f24ecc.
Please register to edit this issue
Also available in: Atom PDF Tracking page