ចំណុចបញ្ចប់ Twisted អនុវត្តការតភ្ជាប់ TCP។ រោងចក្រ WebSocket ដែលបានកំណត់រចនាសម្ព័ន្ធដើម្បីចរចា proxy នៅតែត្រូវការចំណុចបញ្ចប់នោះដើម្បីភ្ជាប់ទៅអ្នកកណ្តាល។

សម្រាប់កម្មវិធី Autobahn ដែលមានស្រាប់ដែលប្រើជំនួយការស្តង់ដាររបស់វា៖

from autobahn.twisted.websocket import WebSocketClientFactory, connectWS
from twisted.internet import ssl

factory = WebSocketClientFactory(
    'wss://events.example/channel',
    proxy={'host': 'proxy.example', 'port': 8080},
)
factory.protocol = ApplicationProtocol
connector = connectWS(
    factory,
    contextFactory=ssl.optionsForClientTLS('events.example'),
    timeout=10,
)

ApplicationProtocol គឺជាថ្នាក់ពិធីការ WebSocket ដែលមានស្រាប់របស់កម្មវិធី។ រក្សា reactor និងការសម្អាតការតភ្ជាប់ក្នុងវដ្តជីវិតរបស់កម្មវិធីនោះ។ សម្រាប់សេវា WSS សាធារណៈដែលត្រូវបានអនុញ្ញាតតាមរយៈអ្នកកណ្តាលសាធារណៈ បញ្ជី HTTP proxy ផ្តល់បេក្ខជនសម្រាប់ host និង port proxy របស់រោងចក្រ។

សម្រាប់រោងចក្រដែលបានកំណត់រចនាសម្ព័ន្ធជាមួយ proxy, connectWS ភ្ជាប់ TCP ទៅ proxy និងរក្សាបរិបទ TLS គោលដៅសម្រាប់ការតភ្ជាប់សុវត្ថិភាពនៅពេលក្រោយ។ ដំបូងវាមិនរុំការតភ្ជាប់ HTTP proxy ធម្មតានៅក្នុង TLS គោលដៅទេ។

ការរៀបចំ HostnameEndpoint និង ClientService ផ្ទាល់ខ្លួនត្រូវរក្សាការបែងចែកដូចគ្នា៖ ភ្ជាប់ទៅ proxy ជាមុនសិន បន្ទាប់មកទុកឱ្យរោងចក្រដែលបានកំណត់រចនាសម្ព័ន្ធ ចរចាគោលដៅ និងបង្កើត TLS ដែលត្រូវការ។ ការភ្ជាប់ចំណុចបញ្ចប់ផ្ទាល់ទៅ events.example ខណៈដែលរោងចក្ររបស់វារំពឹងការសន្ទនា proxy លាយផ្សំតួនាទីទាំងនោះ។

URL WebSocket នៅតែជាគោលដៅសេវាពិតប្រាកដ។ ឈ្មោះ host របស់វាក៏ផ្តល់អត្តសញ្ញាណ TLS ដែរ។ ការជំនួសវាដោយឈ្មោះ host proxy មិនកំណត់រចនាសម្ព័ន្ធសេវាសុវត្ថិភាពដែលបានបម្រុងទុកទេ។

អត្ថបទពាក់ព័ន្ធ