हाय, हैब्र। कंसोल चैट एक शानदार चीज है, लेकिन फ्रंट-एंड के लिए, लेकिन क्या होगा यदि आप एक ही चाहते हैं, लेकिन बैकएंड के लिए। यदि हाँ, तो यह लेख आपके लिए है। लेकिन बैकेंड में अक्सर किस उपकरण का उपयोग किया जाता है? यह सही ssh है, इसलिए मैं sshchat का प्रतिनिधित्व करता हूं।
कैसा लगेगा
कहीं सर्वर पर, नोड पर कार्यक्रम कताई है।
जैसे ही कोई चैट से कनेक्ट करना चाहता है, वह प्रवेश करता है:
ssh server -p 8022
उसके बाद, सिस्टम एक पासवर्ड पूछता है और एक विशेष फ़ाइल में पासवर्ड के साथ इसकी पुष्टि करता है। यदि पासवर्ड मेल खाता है, तो हम चैट से कनेक्ट करते हैं (उपयोगकर्ता को 100 पिछले संदेश मिलते हैं और बाकी सभी लोग देखते हैं कि वह जुड़ा हुआ है)।
फिर वह दूसरों के संदेश प्राप्त करता है, और खुद लिख सकता है।
संदेशों के साथ यहां और अधिक रोचक:
@box{@color(red){Red text in box}}
बॉक्स में लाल पाठ भेजें।
चलिए शुरू करते हैं
Ssh के साथ काम करने के लिए, हम https://www.npmjs.com/package/ssh2 का उपयोग करेंगे।
स्वरूपण के लिए हम चॉक और बॉक्सेन का उपयोग करते हैं।
इसलिए उन्हें स्थापित करें:
npm i ssh2 chalk boxen
अब कोड ही इस संदेश पार्सर ( GitHub ) के सबसे महत्वपूर्ण भागों में से एक है:
प्रारूपण ( GitHub ):
const chalk = require('chalk'); const { parseAndExecute } = require('./parserExec')
सभी उपयोगकर्ताओं को संदेश भेजने और 100 संदेशों को सहेजने के तरीके ( GitHub ):
let listeners = [];
लॉबी, सर्वर निर्माण और प्राधिकरण ( GitHub ):
const { Server } = require('ssh2'); const { readFileSync } = require('fs'); const hostKey = readFileSync('./ssh');
विभिन्न तरीके ( GitHub ):
const { createInterface } = require('readline'); module.exports.getStream = function(client, onStream, onEnd){ client
अब गठबंधन ( GitHub ):
const { createServer, setConnectCallback } = require('./lobby'); const { getStream, getCommunicator } = require('./utils'); const { addListener, delListener, broadcast, getCache } = require('./broadcaster'); const { format, getNick } = require('./format');
और अंतिम चरण एक उदाहरण सर्वर है:
const chat = require('.') chat({})
Users.json फ़ाइल भी उपयोगकर्ताओं और उनके पासवर्ड का वर्णन करती है।
निष्कर्ष
इस तरह आप ssh में सबसे आसान चैट नहीं लिख सकते।
ऐसी चैट के लिए, क्लाइंट को लिखने की आवश्यकता नहीं है, इसमें डिज़ाइन क्षमताएं हैं, और कोई भी इसे तैनात कर सकता है।
और क्या किया जा सकता है:
- अपनी खुद की डिज़ाइन सुविधाएँ बनाने की क्षमता जोड़ें
- मार्कडाउन समर्थन जोड़ें
- बॉट समर्थन जोड़ें
- पासवर्ड सुरक्षा बढ़ाएँ (हैश और नमक)
अंतिम रिपॉजिटरी