কীভাবে সাফ্টের সাথে সহযোগী পাঠ্য সম্পাদক তৈরি করবেন

আনস্প্ল্যাশ-এ কাঁচপিক্সেল দ্বারা ছবি

আজকাল টেক্সট এডিটররা জনপ্রিয় হয়ে উঠছে, তারা কোনও ওয়েবসাইটের মন্তব্য ফর্মটিতে এম্বেড হয়েছে বা নোটপ্যাড হিসাবে ব্যবহৃত হয়েছে। বেছে নেওয়ার জন্য অনেকগুলি পৃথক সম্পাদক রয়েছে। এই পোস্টে, আপনি কীভাবে আইওএসে একটি সুন্দর মোবাইল পাঠ্য সম্পাদক অ্যাপ্লিকেশন তৈরি করবেন তা নয়, তবে পুষার ব্যবহার করে কীভাবে একটি নোটে সহযোগিতা করবেন তাও শিখবেন।

তবে নোট করুন, নিবন্ধটি একসাথে সম্পাদনাগুলি সহজে ব্যবহারের জন্য আবরণ করে না। অতএব, অন্যরা যখন দেখছেন তখন কেবলমাত্র একজন ব্যক্তি একসাথে সম্পাদনা করতে পারবেন।

পাঠ্য প্রবেশ করানোর সময় অ্যাপ্লিকেশনটি একটি ইভেন্ট উত্থাপন করে। এই ইভেন্টটি পুশারে প্রেরণ করা হয় এবং তারপরে কর্মচারীর ডিভাইসে ক্যাপচার করা হয় এবং স্বয়ংক্রিয়ভাবে আপডেট হয়।

এই টিউটোরিয়ালটি অনুসরণ করতে আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:

  1. কোকোপডস: ইনস্টল করতে আপনার কম্পিউটারে মণি ইনস্টল করুন কোকোপডগুলি চালান
  2. এক্সকোড
  3. একটি পুশার অ্যাপ্লিকেশন: আপনি এখানে একটি নিখরচায় অ্যাকাউন্ট এবং অ্যাপ্লিকেশন তৈরি করতে পারেন
  4. সুইফট ভাষার কিছু জ্ঞান
  5. নোড.জেএস

শেষ অবধি, এই টিউটোরিয়ালটি অনুসরণ করার জন্য সুইফট এবং নোড.জেএস সম্পর্কে একটি প্রাথমিক বোঝার প্রয়োজন।

এক্সকোডে আমাদের আইওএস অ্যাপ্লিকেশনটি দিয়ে শুরু করুন

এক্সকোড শুরু করুন এবং একটি নতুন প্রকল্প তৈরি করুন। আমি আমার কলবোকে ডাকি। ইনস্টলেশন উইজার্ডটি চালানোর পরে এবং ওয়ার্কস্পেসটি খোলার পরে, এক্সকোডটি বন্ধ করুন এবং আপনার প্রকল্পের মূলটিতে যান এবং পড ইআরএন কমান্ডটি চালান। এটি আপনার জন্য একটি পড ফাইল তৈরি করা উচিত। পড ফাইলের বিষয়বস্তু পরিবর্তন করুন:

# আপনার প্রকল্পের প্ল্যাটফর্মের জন্য একটি গ্লোবাল প্ল্যাটফর্ম সংজ্ঞায়িত করার জন্য পরবর্তী পংক্তির মন্তব্যটি সরান: আইওএস, '9.0'
'পাঠ্য কোলাবো' করার লক্ষ্য # আপনি যদি সুইফট ব্যবহার না করেন এবং গতিশীল ফ্রেমওয়ার্ক ব্যবহার করতে না চান তবে পরবর্তী লাইনে মন্তব্য করুন_ফ্রেমওয়ার্কস!
# আনচ্যাট পডের জন্য পোডস 'অ্যালামোফায়ার' পোড 'পুশারসুইফ্ট' শেষ

এখন পড ইনস্টল কমান্ডটি চালান যাতে কোকোপডস প্যাকেজ ম্যানেজার প্রয়োজনীয় নির্ভরতা নির্ধারণ করতে পারে। এটি হয়ে গেলে, এক্সকোডটি বন্ধ করুন (এটি যদি খোলা থাকে) এবং তারপরে আপনার প্রকল্প ফোল্ডারের মূল ডিরেক্টরিতে অবস্থিত .xcworkspace ফাইলটি খুলুন।

আমাদের আইওএস অ্যাপ্লিকেশনটির জন্য মতামত ডিজাইন করা

আমরা আমাদের আইওএস অ্যাপ্লিকেশনটির জন্য কিছু মতামত তৈরি করতে যাচ্ছি। এটি হ'ল মেরুদণ্ড যা আমরা যুক্তি দিয়ে সমস্ত আবদ্ধ করব। আপনি যদি এক্সকোড স্টোরিবোর্ডটি ব্যবহার করেন তবে আপনার দর্শনগুলি নীচের স্ক্রিনশটের মতো দেখাবে।

এটি লঞ্চস্ক্রিন.স্টোরিবোর্ড ফাইল। আমি কেবল কোনও কার্যকারিতা ছাড়াই সহজ কিছু ডিজাইন করেছি।

পরবর্তী স্টোরিবোর্ডটি আমরা ডিজাইন করি মেইন স্টোরবোর্ড। নামটি সূচিত হিসাবে, এটি সবচেয়ে গুরুত্বপূর্ণ হবে। এখানে আমাদের যুক্তির সাথে যুক্ত সমস্ত প্রধান মতামত রয়েছে।

এখানে আমরা তিনটি মতামত আছে।

প্রথম দৃশ্যটি ঠিক ঠিক হোম স্ক্রিনের মতো দেখায়, একটি বাটন বাদে আমরা দ্বিতীয় ভিউটি খুলতে লিঙ্ক করেছি।

দ্বিতীয় দৃশ্যটি নেভিগেশন নিয়ামক। এটি তৃতীয় দর্শনের সাথে সংযুক্ত যা একটি ভিউকন্ট্রোলার। আমরা আমাদের নেভিগেশন নিয়ামক হিসাবে রুট কন্ট্রোলার হিসাবে তৃতীয় দর্শন সেট করেছি।

তৃতীয় দৃশ্যে আমাদের কাছে একটি ইউআইটিেক্সটভিউ রয়েছে যা সম্পাদনা করে ভিউতে রাখা যেতে পারে। একটি লেবেলও রয়েছে যা চরিত্রের পাল্টা বলে মনে করা হচ্ছে। এখানে আমরা টেক্সট ভিউতে ব্যবহারকারী পাঠ্য টাইপ করায় অক্ষরগুলি বৃদ্ধি করি।

আইওএস সহযোগী পাঠ্য সম্পাদক অ্যাপ্লিকেশন কোডিং

এখন আমরা অ্যাপ্লিকেশনটি লোড করার জন্য প্রয়োজনীয় ভিউগুলি সফলভাবে তৈরি করেছি, আসুন আমরা অ্যাপ্লিকেশনটির জন্য যুক্তি কোডিং শুরু করি।

একটি নতুন কোকো ক্লাস ফাইল তৈরি করুন এবং এটির নাম TextEditorViewController রাখুন। এটিকে মেইন.স্টরিবোর্ড ফাইলের তৃতীয় দর্শনে লিঙ্ক করুন। টেক্সটভিউ কনট্রোলারটি ইউআইটিেক্সটভিউডেলিগেটও গ্রহণ করতে হবে। এখন আপনি Ctrl কীটি ধরে রাখতে পারেন এবং মেইন.স্টিরিবোর্ড ফাইলটিতে ইউআইটিএক্সেক্সটভিউ এবং ইউআইএলবেলটিকে টেক্সটএডিটরভিউকন্ট্রোলার শ্রেণিতে টেনে আনতে পারেন।

আপনার পুশারউইফ্ট এবং অ্যালামোফায়ার লাইব্রেরিটি টেক্সটভিউ কনট্রোলারের মধ্যেও আমদানি করা উচিত। আপনার কাজ শেষ হওয়ার পরে কিছুটা কাছাকাছি থাকা উচিত:

আমদানি UIKit আমদানি পুষারসুইফ্ট আমদানি আলমোফায়ার
ক্লাস টেক্সটএডিটরভিউ কনট্রোলার: ইউআইভিউকন্ট্রোলার, ইউআইটিেক্সটভিউডেলিগেট {@ আইবিআউটলেট দুর্বল ভের টেক্সটভিউ: ইউআইটিেক্সটভিউ! @ আইবিউটলেট দুর্বল ভার অক্ষর লেবেল: ইউআইএলবেল! }

এখন আমাদের কয়েকটি বৈশিষ্ট্য যুক্ত করতে হবে যা আমাদের পরে নিয়ামকের প্রয়োজন হবে।

আমদানি UIKit আমদানি পুষারসুইফ্ট আমদানি আলমোফায়ার
শ্রেণীর পাঠ্যএডিটরভিউ কনট্রোলার: ইউআইভিউকন্ট্রোলার, ইউআইটিেক্সটভিউডেলিগেট {স্ট্যাটিকালি এপিআইএএনপিওএনপিওএনটি = "http: // লোকালহোস্ট: 4000";
@ আইবিউটলেট দুর্বল ভার পাঠ্য দেখুন: ইউআইটিেক্সটভিউ!
@ আইবিআউটলেট দুর্বল ভার অক্ষর লেবেল: ইউআইএলবেল!
ভার পুশার: পুশার!
var chillPill = সত্য
var placeHolderText = "টাইপ করা শুরু করুন ..."
var randomUuid: স্ট্রিং = ""}

এখন আমরা যুক্তিটি তিন ভাগে বিভক্ত করতে যাচ্ছি:

  1. সূচক এবং কীবোর্ড ইভেন্ট
  2. UITextViewDelegate পদ্ধতি
  3. পুশার ইভেন্টগুলি পরিচালনা করা।

সূচক এবং কীবোর্ড ইভেন্ট

টেক্সটএডিটরভিউ কনট্রোলারটি খুলুন এবং নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে এটি আপডেট করুন:

ওভাররাইট ফানক ভিডইডলিড ()। সুপার.ভিউডিডলড () // নোটিফিকেশন ট্রিগার নোটিফিকেশনসেন্টার.ডেফল্ট.অ্যাডোসবার্সার (স্ব, নির্বাচনকারী: # নির্বাচক (কীবোর্ড উইলশো), নাম: এনএসনিটিফিকেশন.নাম.উইকি-বোর্ড উইলশো, অবজেক্ট: নীল) NotverCadddfault নির্বাচক: # নির্বাচক (কীবোর্ডওয়ালহাইড), নাম: এনএসনিটিফিকেশন.নাম.ইউকিওয়ারবোর্ড উইলহাইড, অবজেক্ট: নীল) // অঙ্গভঙ্গি স্বীকৃতি দর্শন টেক্সটভিউ প্রতিনিধি হিসাবে কন্ট্রোলার পাঠ্য ভিউ.ডিলেগেট = স্ব // ডিভাইস আইডি এলোমেলোভাবে সেট করুন ইউআইডিএভিস.সি.এন.আর্টিফায়ার ফরভেদার! । .textColor = UIColor.light গ্রে cgRectValue {if self.charactersLabel.frame.origin.y == 1.0 {self.charactersLabel.frame.origin.y - = কীবোর্ডসাইজ.হাইট notification}} ফান কীবোর্ডউইলহাইড (বিজ্ঞপ্তি: এনএসনিটফিকেশন) {যদি কি কীবোর্ডসাইজ = (বিজ্ঞপ্তি.উসারআইএনফ? [UIKeyboardFrameBeginUserInfoKey] হিসাবে? এনএসভ্যালু ?. cgRectValue self if self.view.frame.origin.y! = 1.0 {self.charactersLabel.frame.origin.y + = কীবোর্ডসাইজ.হাইট}}}

ভিউডিডলড পদ্ধতিতে আমরা কীবোর্ডের ফাংশনগুলি নিবন্ধভুক্ত করেছি যাতে তারা কীবোর্ড ইভেন্টগুলিতে সাড়া দেয়। আমরা এমন অঙ্গভঙ্গি সনাক্তকারীদেরও যুক্ত করেছি যা আপনি ইউআইটিেক্সটভিউয়ের বাইরে টাইপ করার সময় কীবোর্ডটি বন্ধ করে দেন। এবং আমরা নিজেই নিয়ামকের উপরে টেক্সটভিউ প্রতিনিধি রাখছি Finally অবশেষে, আমরা নতুন আপডেটগুলি পরীক্ষা করার জন্য একটি ফাংশন ডেকেছি (আমরা এটি পরে তৈরি করব)।

ভিউউইল অ্যাপয়ার পদ্ধতিতে, আমরা কেবল স্থানধারক পাঠ্য অন্তর্ভুক্ত করতে ইউআইটিেক্সটভিউ হ্যাক করেছি কারণ ইউআইটিেক্সটভিউয়ের ডিফল্টরূপে এই কার্যকারিতা নেই। আমি ভাবছি কেন, আপেল ...

কীবোর্ড উইলশো এবং কীবোর্ড উইলহাইড ফাংশনগুলিতে, আমরা কীবোর্ডের সাথে অক্ষরের সংখ্যার জন্য লেবেল উত্থাপন ও নামিয়েছি। এটি সক্রিয় থাকাকালীন কীবোর্ডটিকে লেবেলটি আচ্ছাদন করা থেকে বাধা দেয়।

UITextViewDelegate পদ্ধতি

টেক্সটএডিটরভিউ কনট্রোলারটিকে নিম্নরূপ আপডেট করুন:

ফান্ট টেক্সটভিউডিডিচঞ্জ (_ পাঠ্যদর্শন: ইউআইটিেক্সটভিউ) {অক্ষরসমূহলবেল.টেক্সট = স্ট্রিং (ফর্ম্যাট: "% i অক্ষর", টেক্সটভিউ.টেক্সট।
যদি textView.text.characters.count> = 2 {sendToPusher (পাঠ্য: পাঠ্য ভিউ.টেক্সট)}
ফান্ট টেক্সটভিউ শল্ডব্যাগইনএডিটিং (_ পাঠ্যদর্শন: ইউআইটিেক্সটভিউ) -> বুল {স্ব.টেক্সটভিউ.টেক্সট কালার = ইউআইসিওলর.ব্ল্যাক
যদি self.textView.text == placeHolderText {self.textView.text = ""}
সত্য ফিরে
ফান্ট টেক্সটভিউডিডএন্ডএডিটিং (_ টেক্সটভিউ: ইউআইটিেক্সটভিউ) text যদি টেক্সটভিউ.টেক্সট == "" {স্ব.টেক্সটভিউ.টেক্সট = স্থানহোল্ডারটেক্সট সেল্ফ.টেক্সটভিউ.টেক্সট কালার = ইউআইকিওলআর.লাইট গ্রে}}
func tappedAwayFunction (_ প্রেরক: UITapGestureRecognizer) {টেক্সটভিউ.স্রেইনফর্স্টআরসিপেন্ডার ()}

টেক্সটভিউডিডচ্যাঞ্জ পদ্ধতিটি কেবল অক্ষর গণনা লেবেল আপডেট করে এবং আমাদের ব্যাকএন্ড এপিআই (যা আমরা এক মিনিটের মধ্যে তৈরি করব) ব্যবহার করে পুশারগুলিতে পরিবর্তনগুলি প্রেরণ করে।

পাঠ্য ভিউ শল্ডবাগিনএডিটিংটি ইউআইটিেক্সটভিউ ডেলেগেট থেকে পুনরুদ্ধার করা হয় এবং পাঠ্য ভিউটি সম্পাদনা করার সময় ট্রিগার করা হয়। এখানে আমরা মূলত পাঠ্য ভিউডিডএন্ডএডিটিং পদ্ধতির মতো প্লেসোল্ডারের সাথে চারপাশে খেলছি।

শেষ অবধি, টেপডওয়ে ফাংশন ফাংশনে আমরা পূর্ববর্তী বিভাগে নিবন্ধভুক্ত অঙ্গভঙ্গির জন্য ইভেন্ট কলব্যাকটি সংজ্ঞায়িত করি। এই পদ্ধতিটি মূলত কীবোর্ড ব্যবহার করে না।

পুশার ইভেন্টগুলি পরিচালনা করা

নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে নিয়ামক আপডেট করুন:

func sendToPusher (পাঠ্য: স্ট্রিং) {প্যারামগুলি দিন: প্যারামিটারগুলি = ["পাঠ্য": পাঠ্য, "থেকে": এলোমেলো ইউইড]
অ্যালামোফায়ার.প্রভেস্ট (টেক্সটএডিটরভিউ কনট্রোলার.আইপিআইএনপিওএনটি + "/ আপডেট_টেক্সট", পদ্ধতি: .পোস্ট, পরামিতি: প্যারাম)। বৈধকরণ ()। প্রতিক্রিয়া JSON switch প্রতিক্রিয়া সুইচ প্রতিক্রিয়া। ফলাফল {
কেস। সাফল্য: মুদ্রণ ("সফল") কেস। ব্যর্থতা (ত্রুটি যাক): মুদ্রণ (ত্রুটি)}}}
ফানক শোনাফোরচেন্জস () {পুশার = পুশার (কী: "PUSHER_KEY", বিকল্পগুলি: পুশারক্লিয়েন্টপশনস (হোস্ট: .ক্লাস্টার ("PUSHER_CLUSTER")))
চ্যানেল = pusher.subscribe ("কোলাবো") যাক _ _ চ্যানেল.বাইন্ড (ইভেন্টনাম: "পাঠ্য_আপডেট", কলব্যাক: {(ডেটা: কোনও?) -> শূন্য
যদি তথ্য = ডেটা হিসাবে? [স্ট্রিং: যেকোনও অবজেক্ট] ev থেকে শুরু করুন ডিভাইসআইডি = ডেটা ["ডিভাইসআইডি"] হিসাবে! স্ট্রিং
যদি ডিভাইসআইডি থেকে! = self.randomUuid {পাঠ্য = ডেটা ["পাঠ্য"] হিসাবে দিন! স্ট্রিং সেল্ট.টেক্সটভিউ.টেক্সট = টেক্সট সেলফ্রেচারারস লেবেল.টেক্সট = স্ট্রিং (ফর্ম্যাট: "% i অক্ষর", টেক্সট.ক্যারাকটারস.কম)}}})
pusher.connect ()}

সেন্ডটোপিশার পদ্ধতির সাহায্যে আমরা আলমোফায়ারের সাথে ব্যবহারকারীর ডেটা আমাদের ব্যাকএন্ড অ্যাপ্লিকেশনে প্রেরণ করি যা ফলস্বরূপ এটি পুশারে প্রেরণ করে।

শোনারফোরচেনজ পদ্ধতিতে আমরা তারপরে পাঠ্যের পরিবর্তনের জন্য অপেক্ষা করি এবং পাঠ্য দৃশ্যে পরিবর্তনগুলি যদি থাকে তবে প্রয়োগ করি।

আপনার পুশার ড্যাশবোর্ড থেকে পাওয়া প্রকৃত মানের সাথে কী এবং ক্লাস্টারটি প্রতিস্থাপন করতে ভুলবেন না।

আপনি যদি টিউটোরিয়ালটি ঘনিষ্ঠভাবে অনুসরণ করে থাকেন তবে আপনার টেক্সটএডিটরভিউ কনট্রোলারের এমন কিছু দেখতে পাওয়া উচিত:

আমদানি UIKit আমদানি পুষারসুইফ্ট আমদানি আলমোফায়ার
শ্রেণীর পাঠ্যএডিটরভিউ কনট্রোলার: ইউআইভিউকন্ট্রোলার, ইউআইটিেক্সটভিউডেলিগেট {স্ট্যাটিকালি এপিআইএএনপিওএনপিওএনটি = "http: // লোকালহোস্ট: 4000";
@ আইবিউটলেট দুর্বল ভার পাঠ্য দেখুন: ইউআইটিেক্সটভিউ!
@ আইবিউটলেট দুর্বল ভার অক্ষর লেবেল: ইউআইএলবেল!
ভার পুশার: পুশার!
var chillPill = সত্য
var placeHolderText = "টাইপ করা শুরু করুন ..."
var randomUuid: স্ট্রিং = ""
ওভাররাইড ফানক ভিডডিলডোড ()। সুপার.ভিউডিডলড ()
// নোটিফিকেশন ট্রিগার নোটিফিকেশন সেন্টার.ডেফল্ট.এডডোসবারভার (স্ব, নির্বাচক: # নির্বাচক (কীবোর্ড উইলশো), নাম: এনএসনোটিকেশন.নাম.উইকিবোর্ডওয়িলশো, অবজেক্ট: শূন্য) নোটিফিকেশনকেন্দ্র .Name.UIKeyboardWillHide, অবজেক্ট: শূন্য)
// অঙ্গভঙ্গি স্বীকৃতি দেখুন.এডডেস্টগারআর সনাক্তকারী (UITapGestureRecognizer (লক্ষ্য: স্ব, ক্রিয়া: # নির্বাচক (টেপডওয়ে ফাংশন (_ :))))
// কন্ট্রোলারটিকে একটি পাঠ্য ভিউ প্রতিনিধি টেক্সটভিউ.ডিলেগেট = স্ব হিসাবে সেট করুন
// ডিভাইস আইডি এলোমেলোভাবে সেট করুন ইউইউডিড = ইউআইডিওয়াইস.সি.আর। .uuidString
// পুশার শোনার জন্য পরিবর্তনগুলি দেখুন ফোর্স চেঞ্জস ()}
ওভাররাইট ফানক ভিউ উইল অ্যাপয়ার (_ অ্যানিমেটেড: বুল) {সুপার.ভিউউইলঅ্যাপিয়ার (অ্যানিমেটেড)
যদি self.textView.text == "" {self.textView.text = placeHolderText স্ব.টেক্সটভিউ.টেক্সট কালার = ইউআইসিওলর.লাইট গ্রে}}
ফান কীবোর্ড উইলশো (বিজ্ঞপ্তি: এনএসনিটিফিকেশন) keyboard যদি কীবোর্ডসাইজ = (বিজ্ঞপ্তি.ইউজারআইফোন? [ইউআইকিবোর্ড ফ্রেমবেগিন ইউজারআইফোনকি] কে? এনএসভ্যালু) ?. cgRectValue {if self.charactersLabel.frame.origin.y == 1.0 {self.charactersLabel.frame.origin.y - = কীবোর্ডসাইজ.হাইট}}}
ফান কীবোর্ড উইলহাইড (বিজ্ঞপ্তি: এনএসনিটিফিকেশন) keyboard যদি কীবোর্ডসাইজ = (নোটিকেশন.ইউজারআইফোন? [ইউআইকিবোর্ডফ্রেমবেগিন ইউজারআইফোনকি] কে? এনএসভ্যালু) ?. cgRectValue self if self.view.frame.origin.y! = 1.0 {স্বতঃআপনারলিবেল.ফ্রেম.রিগিন.ই + = কীবোর্ডসাইজ.হাইট}}}
ফান্ট টেক্সটভিউডিডিচঞ্জ (_ পাঠ্যদর্শন: ইউআইটিেক্সটভিউ) {অক্ষরসমূহলবেল.টেক্সট = স্ট্রিং (ফর্ম্যাট: "% i অক্ষর", টেক্সটভিউ.টেক্সট।
যদি textView.text.characters.count> = 2 {sendToPusher (পাঠ্য: পাঠ্য ভিউ.টেক্সট)}
ফান্ট টেক্সটভিউ শল্ডব্যাগইনএডিটিং (_ পাঠ্যদর্শন: ইউআইটিেক্সটভিউ) -> বুল {স্ব.টেক্সটভিউ.টেক্সট কালার = ইউআইসিওলর.ব্ল্যাক
যদি self.textView.text == placeHolderText {self.textView.text = ""}
সত্য ফিরে
ফান্ট টেক্সটভিউডিডএন্ডএডিটিং (_ টেক্সটভিউ: ইউআইটিেক্সটভিউ) text যদি টেক্সটভিউ.টেক্সট == "" {স্ব.টেক্সটভিউ.টেক্সট = স্থানহোল্ডারটেক্সট সেল্ফ.টেক্সটভিউ.টেক্সট কালার = ইউআইক্লোর.লাইট গ্রে}
func tappedAwayFunction (_ প্রেরক: UITapGestureRecognizer) {টেক্সটভিউ.স্রেইনফর্স্টআরসিপেন্ডার ()}
func sendToPusher (পাঠ্য: স্ট্রিং) {প্যারামগুলি দিন: প্যারামিটারগুলি = ["পাঠ্য": পাঠ্য, "থেকে": এলোমেলো ইউইড]
অ্যালামোফায়ার.প্রভেস্ট (টেক্সটএডিটরভিউ কনট্রোলার.আইপিআইএনপিওএনটি + "/ আপডেট_টেক্সট", পদ্ধতি: .পোস্ট, পরামিতি: প্যারাম)। বৈধকরণ ()। প্রতিক্রিয়া JSON switch প্রতিক্রিয়া সুইচ প্রতিক্রিয়া। ফলাফল {
কেস। সাফল্য: মুদ্রণ ("সফল") কেস। ব্যর্থতা (ত্রুটি যাক): মুদ্রণ (ত্রুটি)}}}
ফানক শোনাফোরচেন্জস () {পুশার = পুশার (কী: "PUSHER_KEY", বিকল্পগুলি: পুশারক্লিয়েন্টপশনস (হোস্ট: .ক্লাস্টার ("PUSHER_CLUSTER")))
চ্যানেল = pusher.subscribe ("কোলাবো") যাক _ _ চ্যানেল.বাইন্ড (ইভেন্টনাম: "পাঠ্য_আপডেট", কলব্যাক: {(ডেটা: কোনও?) -> শূন্য
যদি তথ্য = ডেটা হিসাবে? [স্ট্রিং: যেকোনও অবজেক্ট] ev থেকে শুরু করুন ডিভাইসআইডি = ডেটা ["ডিভাইসআইডি"] হিসাবে! স্ট্রিং
যদি ডিভাইসআইডি থেকে! = self.randomUuid text পাঠ্য = ডেটা ["পাঠ্য"] হিসাবে দিন! স্ট্রিং সেল্ট.টেক্সটভিউ.টেক্সট = টেক্সট সেলফ্রেচারারস লেবেল.টেক্সট = স্ট্রিং (ফর্ম্যাট: "% i অক্ষর", টেক্সট.ক্যারাকটারস.কম)}}})
pusher.connect ()}}

বড়! এখন আমাদের অ্যাপ্লিকেশনটির ব্যাকএন্ড তৈরি করতে হবে।

ব্যাকএন্ড নোড অ্যাপ্লিকেশন তৈরি করা হচ্ছে

এখন যে আমরা সুইফট অংশটি দিয়ে শেষ করেছি, আমরা অ্যাপ্লিকেশনটির জন্য নোড.জেএস ব্যাকএন্ড তৈরি করতে ফোকাস করতে পারি। আমরা এক্সপ্রেস ব্যবহার করব যাতে আমরা কিছু পেতে এবং দ্রুত চলতে পারি।

ওয়েব অ্যাপ্লিকেশনটির জন্য একটি ডিরেক্টরি তৈরি করুন, তারপরে কয়েকটি নতুন ফাইল তৈরি করুন।

Index.js ফাইল:

লেট পাথ = প্রয়োজনীয় ('পাথ'); let Pusher = প্রয়োজনীয় ('pusher'); যাক এক্সপ্রেস = প্রয়োজনীয় ('এক্সপ্রেস'); let bodyParser = প্রয়োজনীয় ('বডি-পার্সার'); লেট অ্যাপ = এক্সপ্রেস (); যাক pusher = নতুন pusher (প্রয়োজনীয় ('./ config.js'));
app.use (বডিপার্সার.জসন ()); app.use (বডি পার্সার.উরল্যানকোড ({প্রসারিত: মিথ্যা}));
app.post ('/ update_text', ফাংশন (req, res) {var payload = {টেক্সট: req.body.text, ডিভাইস আইডি: req.body.from us pusher.trigger ('কোলাবো', 'টেক্সট_আপডেট', পে-লোড) res.json ({সাফল্য: 200})});
app.use (ফাংশন (req, res, next) {var এরর = নতুন ত্রুটি ('পাওয়া যায়নি'); err.status = 404; পরবর্তী (ত্রুটি);});
মডিউল.এক্সপোর্টস = অ্যাপ;
app.listen (4000, ফাংশন () {কনসোল.লগ ('অ্যাপ পোর্ট 4000 শুনছে!');;);

উপরের জেএস ফাইলে, আমরা একটি সাধারণ অ্যাপ্লিকেশন তৈরি করতে এক্সপ্রেস ব্যবহার করছি। রুট / আপডেট_টেক্সটে আমরা কেবল পেডলোড পাই এবং এটি পুশারে ফরোয়ার্ড করি। সেখানে জটিল কিছু নেই।

একটি প্যাকেজ.জসন ফাইলও তৈরি করুন:

main "প্রধান": "index.js", "নির্ভরতা": body "বডি-পার্সার": "^ 1.17.2", "এক্সপ্রেস": "^ 4.15.3", পথ: ^ 0.12.7, পুশার: ^ 1.5.১.১}}}

প্যাকেজ.জসন ফাইলটিতে আমরা সমস্ত এনপিএম নির্ভরতা নির্ধারণ করি।

তৈরি করা শেষ ফাইলটি একটি কনফিগার.জেএস ফাইল। এখানে আমরা আমাদের পুশ অ্যাপ্লিকেশনটির জন্য কনফিগারেশন মানগুলি সংজ্ঞায়িত করেছি:

মডিউল.এক্সপোর্টস = {অ্যাপ্লিকেশন: 'PUSHER_ID', কী: 'PUSHER_KEY', গোপন: 'PUSHER_SECRET', গুচ্ছ: 'PUSHER_CLUSTER', এনক্রিপ্ট করা: সত্য};
আপনার পুশার ড্যাশবোর্ড থেকে পাওয়া প্রকৃত মানের সাথে কী এবং ক্লাস্টারটি প্রতিস্থাপন করতে ভুলবেন না।

এখন ডিরেক্টরিতে এনপিএম ইনস্টল চালান এবং তারপরে এনডিএম ইনস্টলেশন শেষ হওয়ার সাথে সাথে index.js নোডটি চালান। আপনার 4000 পোর্টে একটি অ্যাপ শোনা উচিত! দূতাবাস।

পরীক্ষার আবেদন

আপনার স্থানীয় নোডের ওয়েব সার্ভারটি একবার চালু হয়ে গেলে, স্থানীয় ওয়েব সার্ভারের সাথে যোগাযোগের জন্য আপনার অ্যাপ্লিকেশনটির জন্য আপনাকে কয়েকটি পরিবর্তন করতে হবে। তথ্য.পলিট ফাইলটিতে নিম্নলিখিত পরিবর্তনগুলি করুন:

এই পরিবর্তনের সাহায্যে আপনি আপনার অ্যাপ্লিকেশনটি তৈরি করতে এবং পরিচালনা করতে পারেন এবং এটি আপনার স্থানীয় ওয়েব অ্যাপ্লিকেশনটির সাথে সরাসরি যোগাযোগ করবে।

উপসংহার

এই নিবন্ধটি ব্যাখ্যা করেছে যে কীভাবে আইওএস-এর জন্য রিয়েল-টাইম সহযোগী পাঠ্য সম্পাদক তৈরি করতে পুষার ব্যবহার করবেন। আশা করি আপনি টিউটোরিয়ালটি অনুসরণ করে একটি বা দুটি জিনিস শিখলেন। অনুশীলনে, আপনি আরও দৃষ্টান্ত সমর্থন করতে রাজ্যগুলি প্রসারিত করতে পারেন।

এই পোস্টটি প্রথমে পুশারদের জন্য প্রকাশিত হয়েছিল।