SignalGo ارتباط امن، سریع، و راحت با خوانایی کد بالاتر بین کلاینت و سرور...

سیگنال Go پروژه ای هست که ارتباطات بلادرنگ (Real-Time) رو برای برنامه نویسان سرور و کلاینت فراهم میکنه. به این صورت که سرور بر حسب یک ادرس و پورت خاص اجرا میشه و کلاینت ها با استفاده از همون آدرس به اون سرور متصل میشن و داده ارسال میکنند و داده دریافت میکنند.این ارتباط کاملاً Duplex یعنی دو طرفه می باشد. پروژه هایی نظیر SignalR و WCF هم در مجموعه ی این نوع پروژه ها قرار میگیرن و کاربرد بسیاری در ساخت بازی ها و انواع سایت ها و اپلیکیشن ها دارن.

SignalGo ارتباط امن، سریع، و راحت با خوانایی کد بالاتر بین کلاینت و سرور...

ویدئوی معرفی کامل سیگناگو در آپارات

چرا ما شروع کردیم به نوشتن SignalGo ؟

اولین مشکل ما ارتباط سخت بین کلاینت و سرور در جاوا و سی شارپ بود.برنامه نویسان شرکت ما که جاوا کار بودند بسیار براشون سخت بود که به سرور دات نت با سیگنال R وصل شن و منیج کردن کد ها و مشکلات تبدیل کد و هندل کردن به وجود میومد و همچنین عدم وجود بعضی از قابلیت ها که مارو بر این کرد تا این سیستم رو از پایه طراحی کنیم.

پروژه ی سیگنال Go یک پروژه ی Open Source و متن باز هست که طراحی و معماری اون به شکلی انجام شده که سرعت انجام کار و تبادل اطلاعات رو چندین برابر بیشتر میکنه و اطمینان بیشتری به برنامه نویس میده.

قابلیت های سیگنالگو:

1.ارسال و دریافت هرگونه داده و کلاس و آبجکت و struct و complex object از کلاینت به سرور و بالعکس
2.آپلود و دانلود هرگونه استریم مثل فایل و عکس و ...
3.ارسال و دریافت هرگونه داده با استفاده از UDP برای استریم کردن ویدئو ها و صداهای لایو و زنده
4.بازگشت دادن مقادیر در توابع از کلاینت به سرور و بالعکس
5.از سمت سرور میتونید با استفاده Linq هرگونه کوئری ای بین کلاینت ها بزنید و براحتی جستجو کنید و دسترسی به کلاینت های مورد نظرتون داشته باشید.
6.تنظیماتی مربوط به حداکثر دیتاهای ارسالی و دریافتی
7.استفاده از الگوریتم های AES و RSA برای بخش امنیت ارسال و دریافت داده ها
8.ساخت کنترلر هایی مثل MVC جهت ساخت توابع http که میتونید توابعتون رو از طریق پروتکل http GET و POST صدا بزنید.
9.ساپورت async و await ها برای کلاینت
10.سیستم لاگ کامل برای هرگونه تابعی که صدا زده میشه.
11.مدیریت سیستم تبادل اطلاعات بدون نیاز به تغییر توی مدل هاتون، برای مثال شما از مدل User فقط نام و نام خانوادگیش رو بفرستید و تحت هیچ شرایطی پسورد یا نام کاربری یا فیلد هایی که میخواید به کلاینت های دیگه فرستاده نشه.
12.محدود کردن آی پی ها برای صدا زدن توابع که میتونید باهاش مثل یه سری آی پی رو حتی بلاک کنید.
13.منیج راحت دسترسی های کاربرانبدون نوشتن یک خط کد در توابع و همچنین بدون نیاز به گذاشتن try و catch برای مدیریت خطا ها در توابع.
14.هندل کردن اشاره گر ها در ارسال اطلاعات از کلاینت به سرور و بالکعس.
15.سیستم اولویت بندی در صدا زدن توابع
و...


در حال حاضر سرور و کلاینت دات نت و کلاینت جاوا SignalGo در github در دسترس هست.

سورس سرور و کلاینت:

https://github.com/SignalGo/SignalGo-full-net

سورس کلاینت جاوا:
https://github.com/SignalGo/client-java


نصب از طریق nuget:

نسخه ی سرور

نسخه ی کلاینت

نسخه ی جاوا اسکریپت

سمپل و مثال کار با سیگنالگو

پروژه ی تست توابع سرور

آموزش سی شارپ