Erlang 21

ssh_server_channel




erlang

ssh_server_channel

मॉड्यूल

ssh_server_channel

मॉड्यूल सारांश

-behaviour (ssh_server_channel)। (Ssh_daemon_channel की जगह)

विवरण

ध्यान दें

यह मॉड्यूल ssh_daemon_channel को प्रतिस्थापित करता है।

पुराना मॉड्यूल अभी भी संगतता के लिए उपलब्ध है, लेकिन नए कार्यक्रमों के लिए उपयोग नहीं किया जाना चाहिए। कुछ त्रुटि सुधारों को छोड़कर पुराने मॉड्यूल को बनाए नहीं रखा जाएगा

SSH सेवाओं (क्लाइंट और सर्वर) को उन चैनलों के रूप में लागू किया जाता है जो SSH कनेक्शन पर मल्टीप्लेक्स किए जाते हैं और SSH Connection Protocol पर संचार करते हैं। यह मॉड्यूल कॉलबैक एपीआई प्रदान करता है जो डेमों के लिए जेनेरिक चैनल पहलुओं का ध्यान रखता है, जैसे प्रवाह नियंत्रण और निकट संदेश। यह कॉलबैक फ़ंक्शंस को सेवा (एप्लिकेशन) के विशिष्ट भागों की देखभाल करने देता है। यह व्यवहार यह भी सुनिश्चित करता है कि चैनल प्रक्रिया एक OTP- प्रक्रिया के प्रमुख का सम्मान करती है ताकि यह एक पर्यवेक्षक वृक्ष का हिस्सा हो सके। यह एक सबसिस्टम को लागू करने वाली चैनल प्रक्रियाओं की आवश्यकता है जो ssh अनुप्रयोगों के पर्यवेक्षक पेड़ में जोड़ा जाएगा।

ध्यान दें

क्लाइंट सबसिस्टम हैंडलर लागू करते समय, इसके बजाय -behaviour(ssh_client_channel) उपयोग करें।

कॉलबैक कार्य

निम्नलिखित कार्य ssh_server_channel कॉलबैक मॉड्यूल से निर्यात किए जाने हैं।

निर्यात

मॉड्यूल: init (आर्ग्स) -> {ठीक है, राज्य} | {ओके, स्टेट, टाइमआउट ()} | {रोकें, कारण}

प्रकार

start_link/4 लिए अंतिम तर्क।

यदि आवश्यक हो तो आवश्यक आरंभीकरण करता है और आरंभिक चैनल की स्थिति को लौटाता है।

टाइम-आउट मान जो लौटाए जा सकते हैं, वे समान शब्दार्थ हैं जैसे कि gen_server । यदि टाइम-आउट होता है, तो handle_msg/2 को handle_msg(timeout, State) कहा जाता है।

मॉड्यूल: handle_msg (Msg, राज्य) -> {ठीक है, राज्य} | {रोक, ChannelId, राज्य}

प्रकार

एसएसएच कनेक्शन प्रोटोकॉल के अलावा अन्य संदेशों को संभालता है, कॉल, या चैनल को भेजे गए संदेश।

संभावित एर्लांग 'EXIT' संदेशों को इस फ़ंक्शन द्वारा नियंत्रित किया जाना है और सभी चैनलों को निम्नलिखित संदेश को संभालना है।

{ssh_channel_up, ssh:channel_id(), ssh:connection_ref()}

यह पहला संदेश है जिसे चैनल प्राप्त करता है। यह विशेष रूप से उपयोगी है यदि सर्वर क्लाइंट को संदेश भेजना चाहता है, तो पहले उसे संदेश प्राप्त किए बिना। यदि संदेश आपके विशेष परिदृश्य के लिए उपयोगी नहीं है, तो तुरंत {ok, State} वापस करके इसे अनदेखा {ok, State}

मॉड्यूल: handle_ssh_msg (Msg, राज्य) -> {ठीक है, राज्य} | {रोक, ChannelId, राज्य}

प्रकार

SSH कनेक्शन प्रोटोकॉल संदेशों को संभालता है जिन्हें सेवा-विशिष्ट ध्यान देने की आवश्यकता हो सकती है। विवरण के लिए, ssh_connection:event()

निम्नलिखित संदेश ssh_server_channel व्यवहार द्वारा ध्यान रखा जाता है।

{closed, ssh:channel_id()}

चैनल व्यवहार दूसरी तरफ एक करीबी संदेश भेजता है, अगर ऐसा संदेश पहले ही नहीं भेजा गया है। फिर यह चैनल को normal कारण normal

मॉड्यूल: समाप्त (कारण, राज्य) -> _

प्रकार

इस फ़ंक्शन को एक चैनल प्रक्रिया द्वारा बुलाया जाता है जब यह समाप्त होने वाला होता है। इससे पहले कि यह फ़ंक्शन कहा जाता है, ssh_connection:close/2 कहा जाता है, अगर इसे पहले नहीं बुलाया गया है। यह फ़ंक्शन किसी भी आवश्यक सफाई को पूरा करता है। जब यह वापस आता है, तो चैनल प्रक्रिया Reason साथ समाप्त हो जाती है। रिटर्न वैल्यू को नजरअंदाज किया जाता है।