رفتن به مطلب

کتابخانه irSocket.io


امین مهدی نژاد

ارسال‌های توصیه شده

در 3 ساعت قبل، امین مهدی نژاد گفته است :

سلام.

تلگرام پرسیدی جواب دادم ولی چک نکردی

جمعه ورژن جدید رو می زارم

اگه عجله داری از تلگرام بپرس تا یه روش برات شرح بدم کارت راه بیوفته

:53:

سلام

بسیار متشکرم ، منتظر ورژن جدید میمونم.

احتمالا روشتون استفاده از تایمر در سرویس و چک کردن وضعیت مشخصه connected هست. درسته ؟

جسارتا در ورژن جدید تنها فعال بودن اینرتنت دیتا یا متصل بودن وای.فای بررسی میشه یا بطور حقیقی اعتبار صحت اینترنت بررسی میشه ؟

فرضا وقتی بسته اینترنت تمام می شود ، اینترنت فعال است اما اینترنتی برای استفاده وجود ندارد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 45
  • ایجاد شده
  • آخرین پاسخ

بیشترین ارسال‌ها در این موضوع

ارسال‌های محبوب

Socket.IO یک کتابخانه قدرتمند برای وب اپیلیکیشن‌ها است که یک ارتباط بلادرنگ و دوجهته بین کلاینت و سرور برقرار می‌کند و دارای دو قسمت است. یکی کتابخانه سمت کلاینت که در مرورگر اجرا می‌شود و یک کتابخانه

ساخت سرویس چت در بیسیک فور اندروید این سرویس برای دریافت و مدیریت رویدادهای لازم برای چت روم می باشد. ابتدا متغیر سوکت رو به صورت عمومی می سازیم Sub Process_Globals Dim ir As irSocketIO

نسخه جدید بارگذاری شد افزودن رویداد قطع ارتباط با سرور EVENT_DISCONNECT مثال ir.On(ir.EVENT_DISCONNECT) و رویداد Sub disconnect(obj As Object) Log("disconnect

در 18 ساعت قبل، fun_code گفته است :

سلام

بسیار متشکرم ، منتظر ورژن جدید میمونم.

احتمالا روشتون استفاده از تایمر در سرویس و چک کردن وضعیت مشخصه connected هست. درسته ؟

جسارتا در ورژن جدید تنها فعال بودن اینرتنت دیتا یا متصل بودن وای.فای بررسی میشه یا بطور حقیقی اعتبار صحت اینترنت بررسی میشه ؟

فرضا وقتی بسته اینترنت تمام می شود ، اینترنت فعال است اما اینترنتی برای استفاده وجود ندارد.

نه با جاوا آبجکت می شه ولی استفاده از ورژن جدید بهتره . تا جمعه صبر کنید.

:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نسخه جدید بارگذاری شد

افزودن رویداد قطع ارتباط با سرور

EVENT_DISCONNECT

مثال

ir.On(ir.EVENT_DISCONNECT)

و رویداد

Sub disconnect(obj As Object)
	Log("disconnect")
End Sub

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 هفته بعد...
در در 1397/08/04, 12:17:31، امین مهدی نژاد گفته است :

نسخه جدید بارگذاری شد

افزودن رویداد قطع ارتباط با سرور

EVENT_DISCONNECT

مثال


ir.On(ir.EVENT_DISCONNECT)

و رویداد


Sub disconnect(obj As Object)
	Log("disconnect")
End Sub

«موفق باشید.»

سلام

بسیار متشکرم

لینک دانلود نسخه جدید رو در پست اول قرار ندادین ؟

و اینکه امیدوارم نام فایل مشخص باشه که بدونیم کدوم ورژن جدید هست.

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

.

در در 1397/07/30, 09:32:45، امین مهدی نژاد گفته است :

نه با جاوا آبجکت می شه ولی استفاده از ورژن جدید بهتره . تا جمعه صبر کنید.

:53:

سلام

استاد مهدی نژاد براتون ممکنه روش javaobject رو هم برای تشخیص قطعی ارتباط با سرور بیان بفرمایید ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 59 دقیقه قبل، fun_code گفته است :

.

سلام

استاد مهدی نژاد براتون ممکنه روش javaobject رو هم برای تشخیص قطعی ارتباط با سرور بیان بفرمایید ؟

همون رو به کتابخونه افزودم.

:cheshmak:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 19 دقیقه قبل، basic 4 android گفته است :

سلام ممنون از شما و کتابخانه های رایگان و بی نظیر شما 

 

میگم براتون مقدور هست یه آموزش تصویری از روند کار و ران گرفتن برنامه داشته باشید.

 

خیلی عالی و ممنون میشم 

متاسفانه مشغله زیادی دارم و نمیشه وقت گذاشت

♥

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 5 هفته بعد...

با سلام و احترام

سورس تون رو اجرا کردم ولی متاسفانه هیچ چیزی نشون نمیده.
یعنی هیچ لاگ ای ثبت نمیکنه ، با خود وب سوکت هم اجرا میکنم وصل میشه ولی داده که ارسال میکنم ارور بد ریکوست میده ( توی همه ی سورس هایی که اجرا گرفتم) ممنون میشم در این مورد راهنمایی بفرمایید یا یک سورس کامل از سرور و کلاینت قرار بدید.

با تشکر.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...
در در 1397/08/21, 17:53:42، basic 4 android گفته است :

سلام ممنون از شما و کتابخانه های رایگان و بی نظیر شما 

 

میگم براتون مقدور هست یه آموزش تصویری از روند کار و ران گرفتن برنامه داشته باشید.

 

خیلی عالی و ممنون میشم 

 

در در 1397/09/21, 10:25:30، bazarapk گفته است :

با سلام و احترام

سورس تون رو اجرا کردم ولی متاسفانه هیچ چیزی نشون نمیده.
یعنی هیچ لاگ ای ثبت نمیکنه ، با خود وب سوکت هم اجرا میکنم وصل میشه ولی داده که ارسال میکنم ارور بد ریکوست میده ( توی همه ی سورس هایی که اجرا گرفتم) ممنون میشم در این مورد راهنمایی بفرمایید یا یک سورس کامل از سرور و کلاینت قرار بدید.

با تشکر.

آموزش تصویری این کتابخونه در فروشگاه قرار داده شد.

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

با درود و سپاس از این آموزش مفید

موقع کامپایل به این خطا برخورد می‌کنم :

B4A Version: 8.50
Parsing code.    (0.04s)
Building folders structure.    (0.52s)
Compiling code.    (0.14s)
Compiling layouts code.    (0.06s)
Organizing libraries.    (0.00s)
Generating R file.    (0.53s)
Compiling generated Java code.    (4.62s)
Convert byte code - optimized dex.    Error
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Address;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Authenticator;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Authenticator$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache$2;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache$CacheRequestImpl;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache$CacheRequestImpl$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lokhttp3/Cache$CacheResponseBody;
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Translation has been interrupted
	at com.android.dx.command.dexer.Main.processAllFiles(Main.java:692)
	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:315)
	at com.android.dx.command.dexer.Main.runDx(Main.java:293)
	at com.android.dx.command.dexer.Main.main(Main.java:249)
	at com.android.dx.command.Main.main(Main.java:94)
Caused by: java.lang.InterruptedException: Too many errors
	at com.android.dx.command.dexer.Main.processAllFiles(Main.java:684)
	... 4 more

لطفا راهنمایی بفرمایید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...
در در 1397/04/02, 12:41:48، امین مهدی نژاد گفته است :

ساخت سرویس چت در بیسیک فور اندروید

این سرویس برای دریافت و مدیریت رویدادهای لازم برای چت روم می باشد.

ابتدا متغیر سوکت رو به صورت عمومی می سازیم


Sub Process_Globals
	Dim ir As irSocketIO
End Sub

اکنون سوکت را با آدرس و پورت سرور وصل می کنیم


	ir.getSocket("http://192.168.1.101:3000")

حالا باید رویدادهایی برای وقایع مناسب تهیه کنیم.

مثلا رویدادهای

  • اتصال به سرور
  • لاگین شدن به سرور
  • اتصال کاربر جدید
  • خروج کاربر
  • دریافت پیام
  • کاربر در حال نوشتن
  • لغو در حال نوشتن

کد زیر نمونه ای از این وقایع می باشد


	ir.On(ir.EVENT_CONNECT)
	ir.On("login")
	ir.On("new_message")
	ir.On("user_joined")
	ir.On("user_left")
	ir.On("typing")
	ir.On("stop_typing")

هر یک از رویدادهای بالا در زمان وقوع سابی که هم نام خودشان باشد را اجرا می کنند یعنی این ساب ها را باید بسازیم


Sub connect(obj As Object)
	Log("connect")
End Sub
Sub login(obj As Object)
	Log("login")
End Sub
Sub stop_typing(data As Object)
	Log("stop_typing")
End Sub
Sub new_message(data As Object)
	Log("new_message")
End Sub
Sub user_joined(data As Object)
	Log("user_joined")
End Sub
Sub user_left(data As Object)
	Log("user_left")
End Sub
Sub typing(data As Object)
	Log("typing")
End Sub

 

و اکنون ارتباط سرور را شروع می کنیم


	ir.connect

می توانید در رویداد اتصال بلافاصله لاگین را انجام بدهیم


ir.emit("add_user", "amin")

و یا پیام های دریافتی را به یک اکتیویتی ارسال کنیم تا نمایش داده شوند


Sub new_message(data As Object)
	CallSubDelayed2(Chat,"new_message",data)
End Sub

در اکتیویتی chat و  به ساب new_message مقادیر ارسال می شوند.

در هنگام نیاز می توانید رویداد های غیر لازم را غیر فعال نمایید.


	ir.Off("typing")

خب در نهایت ممکن است چنین کدی داشته باشیم


Sub Process_Globals
	Dim ir As irSocketIO
End Sub

Sub Service_Create

End Sub

Sub Service_Start (StartingIntent As Intent)
	ir.getSocket("http://192.168.1.101:3000")
	ir.On(ir.EVENT_CONNECT)
	ir.On("login")
	ir.On("new_message")
	ir.On("user_joined")
	ir.On("user_left")
	ir.On("typing")
	ir.On("stop_typing")
	ir.connect
End Sub

Sub Service_Destroy

End Sub
Sub connect(obj As Object)
	Log("connect")
	ir.emit("add_user", "amin"&DateTime.Now)
End Sub
Sub login(obj As Object)
	Log("login")
End Sub
Sub stop_typing(data As Object)
	Log("stop_typing")
End Sub
Sub new_message(data As Object)
	CallSubDelayed2(Chat,"new_message",data)
End Sub
Sub user_joined(data As Object)
	Log("user_joined")
End Sub
Sub user_left(data As Object)
	Log("user_left")
End Sub
Sub typing(data As Object)
	Log("typing")
End Sub

«موفق باشید.»

باسلام، چطور بایستی به داده های ورودی data دست پیدا کرد؟ مثلا نام کاربری یا تعداد کاربر متصل؟ باتشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 7 ساعت قبل، qolam2010 گفته است :

باسلام، چطور بایستی به داده های ورودی data دست پیدا کرد؟ مثلا نام کاربری یا تعداد کاربر متصل؟ باتشکر

سلام بر شما

کدهایی که اشاره کردید واسه سمت کاربر هستش اگر کدهای سمت سرور رو نگاهی بندازید .اتفاقا رو همین موضوع با متغیر زیر

var numUsers = 0;

 

فکری براش شده. البته روش های دیگه ای هم هست. این ساده ترین روشه.(شمام سعی کن سخت نگیری و روش ساده رو استفاده کنی. برای پروژه های معمولی بهینه سازی زیاد مطرح نیس:pardon:) برای نام هم اسم طرف رو میشه به صورت خاصیتی از شی سوکت مربوط به هر کاربر قرار داد.

socket.username="value...";

اگر پروژه بازی طراحی می کنی سرور بازی نود-مانگو دارم.کد سمت سرورش هم برای بازی های مختلف قابل استفاده است.

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از پاسختون متشکرم

ولی منظورم چیز دیگه ای بود

به رویداد زیر نگاه کنید:

Sub user_joined(data As Object)
    Log("user_joined ")
 End Sub

از سمت سرور اطلاعات زیر برادکست میشه:

{      username: socket.username,
      numUsers: numUsers
    }

سوال من اینه که این داده های ارسالی سرور به کلاینت کجا ارسال میشه، اگر در قالب data به ساب user_joined پاس داده میشه، چطور میشه اون رو بدست آورد؟ چون هر بار که data رو میخوام استفاده کنم خطا میده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 16 ساعت قبل، qolam2010 گفته است :

از پاسختون متشکرم

ولی منظورم چیز دیگه ای بود

به رویداد زیر نگاه کنید:

Sub user_joined(data As Object)
    Log("user_joined ")
 End Sub

از سمت سرور اطلاعات زیر برادکست میشه:

{      username: socket.username,
      numUsers: numUsers
    }

سوال من اینه که این داده های ارسالی سرور به کلاینت کجا ارسال میشه، اگر در قالب data به ساب user_joined پاس داده میشه، چطور میشه اون رو بدست آورد؟ چون هر بار که data رو میخوام استفاده کنم خطا میده

سلام

اطلاعات دریافتی از سرور به فرمت JSON  هستن.واسه اینکه بتونید مقادیر رو بخونید به این شکل می تونید عمل کنید »

	Private json As JSONParser
	json.Initialize(data)
	Dim m As Map
	m = json.NextObject

خب بر اساس کلید هایی که این داده ها دارن مقادیر رو بخونید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...

سلام این کتابخانه لینکش کجاست ؟ خرابه لینکش که تو فروشگاهم چیزی نیس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 ساعت قبل، hamed1212 گفته است :

سلام این کتابخانه لینکش کجاست ؟ خرابه لینکش که تو فروشگاهم چیزی نیس

رایگانش کردم

:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون اقا امین..

یه سوال دارم....

این کتابخونه چه فرقی با websocket داره؟

بعد اینکه میخواستم ببینم کتابخانه ی socket.io مثل websocket اطلاعات رو برای کسایی که به برنامه سرور وصل هستن فقط برودکست میکنه یا اینکه میشه به شخص مورد نظر هم داده ارسال کرد؟

داخل websocket که هر چی گشتم فقط برنامه سرور میتونست اطلاعات رو برودکست کنه و همه داده هارو دریافت میکردن و نمیشد فقط برا یک نفر ارسال کرد..

میشه یکم توضیح بدین در این باره؟

راهنملیی کوچیک هم باشه من تا تهش میرم ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، hamed1212 گفته است :

ممنون اقا امین..

یه سوال دارم....

این کتابخونه چه فرقی با websocket داره؟

بعد اینکه میخواستم ببینم کتابخانه ی socket.io مثل websocket اطلاعات رو برای کسایی که به برنامه سرور وصل هستن فقط برودکست میکنه یا اینکه میشه به شخص مورد نظر هم داده ارسال کرد؟

داخل websocket که هر چی گشتم فقط برنامه سرور میتونست اطلاعات رو برودکست کنه و همه داده هارو دریافت میکردن و نمیشد فقط برا یک نفر ارسال کرد..

میشه یکم توضیح بدین در این باره؟

راهنملیی کوچیک هم باشه من تا تهش میرم ممنون

»»»»»»»»»»»»»       /        «««««««««««««
از این کوچیکتر نشد توضیح بدم:oops:اما اگه توضیح بیشتر می خوای

همین اسلشو بگیر تا بررسی به این سایت

https://socket.io/docs/rooms-and-namespaces/

«موفق باشید.»

در ضمن یادم رفت بگم که فرقش با websocket افزودن امکانات بیشتر به اونه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

حالا یه شوخی کردیم خخخ.

حالا بگو با کتابخونه ی تو همچین کاری میشه کرد یا نه ؟ اگه جواب مختصر نمیدی مال پست قبل :give_heart:

نگا فرض کن چندتا کلاینت به سرور همون node.js وصل شدن...

میشه من فقط به یکیشون پیام بفرستم؟

یه مثالی میزنی من گیج شدم اخع 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
  • اضافه کردن...