
چارچوب اتصال Multipeer از اپل به طور گسترده ای برای کشف دستگاه های نزدیک شناخته شده است. هنگامی که این چارچوب سوئیفت توسعه یافت، اتصالی را فعال میکند که از ارتباط این سرویسها از طریق پیامرسانی، پخش جریانی و منابع دیگر پشتیبانی میکند.
این دو دستگاه می توانند از طریق بلوتوث یا وای فای به یکدیگر متصل شوند. توسعه دهندگان می توانند از این فریم ورک سوئیفت برای ساخت بازی های ساده و برنامه های چت استفاده کنند.
هنگام ساخت راهحلهای iOS، چارچوب اتصال چندهمتا از شبکههای Wi-Fi، Wi-Fi نظیر به نظیر و بلوتوث برای اتصال استفاده میکند. اما در macOS و tvOS، این فریم ورک از Wi-Fi، Peer-to-Peer Wi-Fi و Ethernet استفاده می کند. بنابراین بسته به نوع رابطه، رویکرد شرکت توسعه اپلیکیشن موبایل ممکن است تغییر کند.
کار با MC Framework
اولین گام در پیاده سازی این فریم ورک این است که همان را با استفاده از تابع import وارد کنید. شما با این شروع خواهید کرد؛
وارد كردن اتصال چندگانه
این ویژگی به توسعه دهنده اجازه می دهد تا با کلاس های Multipeer Connectivity کار کند و از توابع آن در فایل استفاده کند.
برای اینکه یک برنامه کاربردی با فریم ورک MC کار کند، باید با معماری خاصی از جمله:
شناسه های شریک:
MCPeerID شناسه منحصر به فرد برنامه در حال اجرا بر روی دستگاه است که برای همتایان نزدیک قابل مشاهده است.
از آنجا که این شناسه به طور منحصربهفرد یک همتای جلسه را شناسایی میکند، کاربران همچنین میتوانند یک displayName را به شناسه اختصاص دهند که برای سایر همتایان در شبکه قابل مشاهده باشد.
این به توسعه دهندگان اجازه می دهد تا هر بار که یک جلسه ایجاد می کنند، یک نام PeerID جدید تعیین کنند. یا می توانند از یک نام برای هر جلسه استفاده کنند و شناسه را در زمان ایجاد آن ذخیره کنند. آنها همچنین باید بار بعدی که یک جلسه ایجاد می شود، نام شناسه را باز کنند.
اشیاء جلسه:
MCSession ارتباط بین دستگاه های همتا متصل را امکان پذیر می کند. پس از اینکه شرکا درخواست اتصال را پس از دریافت دعوت نامه پذیرفتند، برنامه یک اتصال ایجاد می کند و شرکای اضافه می کند. هدف از اشیاء جلسه حفظ مجموعه ای از اشیاء شناسایی دستگاه همتا مرتبط با همتایان متصل به شبکه است.
MCSession با یک کلاس مدیر نشان داده می شود که تمام اتصالات چندپایه را مدیریت و مدیریت می کند. در یک جلسه، همتایان می توانند با یکی از روش های زیر ارتباط برقرار کرده و داده ها را ارسال کنند.
- ارسال (_:toPeers:with:)
- جلسه (_:didReceive:fromPeer:)
- sendResource(در:withName:toPeer:withCompletionHandler:)
علاوه بر این، ما همچنین می توانیم شرکا را به صورت دستی مدیریت کنیم که شامل برقراری ارتباط و تبادل داده می شود.
MCSession همچنین دارای یک نماینده (MCSessionDelegate) است که تمام رویدادهای مربوط به جلسه را مدیریت می کند.
ما می توانیم از راه های زیر برای مدیریت تمام حالت های مختلف جلسه استفاده کنیم.
MCSessionDelegate پروتکلی است که روش استفاده شده توسط نماینده جلسه اصلی را تعریف می کند. این جلسه نماینده، اجرای رویدادهای مربوط به جلسه را مدیریت می کند. یک متد delegate اقداماتی مانند یک حلقه یا صف عملیاتی را که برای تکمیل یک جلسه مورد نیاز است انجام می دهد.
اشیاء تبلیغ کننده:
MCNearbyServiceAdvertiser به یک دستگاه همتای نزدیک اجازه می دهد که برنامه سعی می کند یک نوع خاص اتصال برقرار کند. این شی از یک همتا یا موجودیت محلی برای ارائه اطلاعات لازم برای شناسایی دستگاه استفاده می کند. علاوه بر این، شی Advertiser همچنین به تشخیص سایر دستگاه های نزدیک کمک می کند.
اشیاء دستیار تبلیغ کننده:
MCAdvertiserAssistant مشابه Advertiser Objects کار می کند، اما ویژگی دیگری را به ترکیب اضافه می کند. همچنین یک رابط کاربری استاندارد فراهم می کند که از آنجا کاربر می تواند دعوت نامه اتصال را بپذیرد.
علاوه بر رابط، the دستیار تبلیغ همچنین وظیفه سازماندهی جلسه و اطلاع رسانی به دیگران از شروع آن را دارد. از آنجایی که ما از این کلاس ویژگی برای تخصیص UI استفاده می کنیم، می توانیم از طریق این کلاس یک جلسه را میزبانی کنیم یا به آن بپیوندیم.
به دنبال این اسکریپت کد، جلسه در دستگاه های نزدیک لیست می شود. با نامی که در ابتدای جلسه MCPeerID ارائه کردیم نمایش داده می شود.
اشیاء مرورگر:
MCNearbyServiceBrowser به برنامه اجازه می دهد تا دستگاه های اطراف را با برنامه هایی که از جلسات پشتیبانی می کنند جستجو کند. با این حال، جلسات پشتیبانی شده از نوع خاصی هستند.
اشیاء کنترل کننده نمای مرورگر:
MCBrowserViewController دسترسی به یک رابط کاربری استاندارد را فراهم می کند. با استفاده از این رابط کاربری، به کاربر این امکان را می دهد که بین همتایان مختلف اطراف خود یکی را انتخاب کرده و آنها را به جلسه شبکه اضافه کند.
با این کد اسکریپت می توانیم به همتایان اجازه دهیم به یک جلسه بپیوندند. اعلان این عملکرد در iOS، iPad، tvOS و macOS متفاوت است. در سه نوع اول سیستم می توانیم استفاده کنیم.
علاوه بر این، ما برای macOS استفاده خواهیم کرد؛
هنگامی که کاربر به دنبال جلسه ای برای پیوستن است، باید از MCSessionViewController برای نمایش نام جلسات و افراد نزدیک استفاده کنیم. در نتیجه، میتوانیم به کاربران جدید اجازه دهیم به جلسه بپیوندند. برای این منظور باید از متد delegate برای MCBrowserVewController استفاده کنیم.
با کار بر روی این معماری، چارچوب MC در دو فاز کار می کند. این مرحله کشف و جلسه است. در مرحله کشف، توسعه دهنده از MCNearbyServiceBrowser و MCBrowserViewController استفاده خواهد کرد. در مرحله جلسه، توسعهدهنده از MCNearbyServiceAdvertiser و MCAdvertiserAssistant استفاده خواهد کرد.
در حین استفاده از چارچوب MC، توسعه دهندگان پیاده سازی کل ساختار را آسان تر خواهند کرد، اگرچه ممکن است کمی پیچیده به نظر برسد. ما به شما در درک اجرای این چارچوب کمک خواهیم کرد.
ارسال و دریافت داده ها در یک جلسه همتا به همتا
اگرچه ما یاد گرفتیم که چگونه یک اتصال برقرار کنیم، یک نام منحصر به فرد اختصاص دهیم و به کاربران اجازه دهیم یک جلسه را در یک برنامه توسعه یافته توسط فریمورک سوئیفت مشاهده کنند و به آن بپیوندند. حال بیایید نحوه ارسال و دریافت داده ها را در جلسه بررسی کنیم.
ابتدا باید دادههایی را که باید در جلسه و زمان ارسال شوند شناسایی کنیم. اگرچه کاربران می توانند همین کار را با کلیک یک دکمه انجام دهند، در اینجا اسکریپت کد برای اجرا آمده است.
برای ارسال داده، باید به نوع Data() فرمت شود. به عنوان مثال، اگر می خواهید تصاویری را ارسال کنید، یک راه خوب برای نشان دادن همان روش، متد ()pngData است.
در همان زمان، ما باید یک کد اسکریپت برای دریافت داده از جلسه پیاده سازی کنیم. بیشتر اوقات، دستگاهی که کاربر از طریق آن داده ها را دریافت می کند، می داند که با آن چه کاری انجام دهد.
با این حال، در چارچوب MC، نحوه برخورد با داده های دریافتی به نوع داده بستگی دارد. میتوانیم از روش زیر برای تصمیمگیری درباره اینکه چه اتفاقی برای دادههای دریافتی روی یک دستگاه میافتد استفاده کنیم.
ما می توانیم از چارچوب اتصال چند همتا برای ایجاد ارتباط بین همتایان و دستگاه های مختلف استفاده کنیم.
نتیجه
چارچوب MC یک روش ارتباطی برای اتصال دستگاه های مختلف iOS و انتقال داده ها بین آنها است. این فریم ورک لایه ای را فراهم می کند که در بالای پروتکل Bonjour کار می کند.
با این حال، برای اینکه این کار روی پروتکل Bonjour کار کند، باید خدمات را با کلید NSBonjourServices اعلام کنیم.
اپل این فریم ورک را معرفی کرد تا به یک برنامه کمک کند تا آنچه را که در اطراف آن است کشف کند و اتصالات را از هر دو طرف باز کند. یادگیری این فریم ورک برای یک شرکت سازنده اپلیکیشن iOS ضروری است. شرکت توسعه اپلیکیشن های سیستم عامل زیرا در ایجاد برنامه های بهتر مفید خواهد بود.
The post A Simple Tutorial on Swift Multiplexing Framework اولین بار در DEV IT Journal ظاهر شد.