رفتن به مطلب

کتابخانه irSocket.io


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

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

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

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

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

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

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

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

سلام ، خسته نباشید.

 

برای اندروید استودیو هست یا بیسیک؟

این کتابخونه مخصوص بیسیک می باشد.

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

سلام.

 

در آینده احتمال این هست که برای اندروید استودیو معرفی کنین؟

بی صبرانه منتظرم...

 

 

ممنون...

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

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

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

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

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

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

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

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

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

سلام

ممنون از شما

http://192.168.1.101:3000

در مورد این آدرس توضیح بیشتری میدید

اگر دارای هاست و دامنه باشیم  و بخواهیم استفاده کنیم ///اون شماره پورت چی میدیم

ممنون اینو توضیح بیشتری بدید////

 

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

در در 1397/04/02, 19:51:07، shahrokhnazari گفته است :

سلام

ممنون از شما


http://192.168.1.101:3000

در مورد این آدرس توضیح بیشتری میدید

اگر دارای هاست و دامنه باشیم  و بخواهیم استفاده کنیم ///اون شماره پورت چی میدیم

ممنون اینو توضیح بیشتری بدید////

 

باید از سمت سرور اونو مشخص کنید. مثلا در سورس زیر دقت کنید.

// Setup basic express server
var express = require('express');
var app = express();
var path = require('path');
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 3000;

server.listen(port, () => {
  console.log('Server listening at port %d', port);
});

// Routing
app.use(express.static(path.join(__dirname, 'public')));

// Chatroom

var numUsers = 0;

io.on('connection', (socket) => {
  var addedUser = false;

  // when the client emits 'new message', this listens and executes
  socket.on('new_message', (data) => {
    // we tell the client to execute 'new message'
    socket.broadcast.emit('new_message', {
      username: socket.username,
      message: data
    });
  });

  // when the client emits 'add user', this listens and executes
  socket.on('add_user', (username) => {
    if (addedUser) return;

    // we store the username in the socket session for this client
    socket.username = username;
    ++numUsers;
    addedUser = true;
    socket.emit('login', {
      numUsers: numUsers
    });
    // echo globally (all clients) that a person has connected
    socket.broadcast.emit('user_joined', {
      username: socket.username,
      numUsers: numUsers
    });
  });

  // when the client emits 'typing', we broadcast it to others
  socket.on('typing', () => {
    socket.broadcast.emit('typing', {
      username: socket.username
    });
  });

  // when the client emits 'stop typing', we broadcast it to others
  socket.on('stop_typing', () => {
    socket.broadcast.emit('stop_typing', {
      username: socket.username
    });
  });

  // when the user disconnects.. perform this
  socket.on('disconnect', () => {
    if (addedUser) {
      --numUsers;

      // echo globally that this client has left
      socket.broadcast.emit('user_left', {
        username: socket.username,
        numUsers: numUsers
      });
    }
  });
});

این کد Node.js مناسب و هماهنگ برای سرویس موجود در بیسیک می باشد.

همانطور که میبینید رویداد ها رو همانند نسخه بیسیک با On معرفی کرده اند

پورت رو هم  3000 قرار داده شده است.

منبع

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

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

  • 2 ماه بعد...
در در 1397/04/02, 19:51:07، shahrokhnazari گفته است :

سلام

ممنون از شما


http://192.168.1.101:3000

در مورد این آدرس توضیح بیشتری میدید

اگر دارای هاست و دامنه باشیم  و بخواهیم استفاده کنیم ///اون شماره پورت چی میدیم

ممنون اینو توضیح بیشتری بدید////

 

سلام

محدوده پورتی بین 1024 و 65535 انتخاب می کنید.

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

  • 1 ماه بعد...
در در 1397/03/30, 16:29:15، امین مهدی نژاد گفته است :

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

سلام استاد

جسارتا بنده سعی دارم به یک سرور node.js متصل بشم که برای یک کار خاص طراحی شده ...

چطور و با چه کتابخونه ای میتونم بهش متصل بشم و دیتا رد و بدل کنم ؟

برای socket سی شارپ و ارتباط tcp سورس دیدم. اما برای ارتباط با نود و socket.io چیزی ندیدم !

متشکرم

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

فعلا تنها کتابخونه ای که در انجمن برای اینکار وجود داره همین کتابخونه است. کار کردن لاهاش هم زیاد سخت نیست سعی کنید مثالش رو اجرا کنید تا کار دستتون بیاد

اگه سوال یا مشکلی دارید با جزئیات بیان کنید تا در صورت توان راهنمایی کنم.

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

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

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

فعلا تنها کتابخونه ای که در انجمن برای اینکار وجود داره همین کتابخونه است. کار کردن لاهاش هم زیاد سخت نیست سعی کنید مثالش رو اجرا کنید تا کار دستتون بیاد

اگه سوال یا مشکلی دارید با جزئیات بیان کنید تا در صورت توان راهنمایی کنم.

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

سلام

لینک دانلود فایل های کتابخانه رو ندیدم !

راهنمایی میکنید ؟

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

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

سلام

لینک دانلود فایل های کتابخانه رو ندیدم !

راهنمایی میکنید ؟

 

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

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

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

سلام

بنده علنا کد شما رو در سرویس starter کپی کردم.

آدرس رو تغییر دادم ، اما اتصال صورت نمیگیره و رویداد connect اجرا نمیشه !

ممکنه راهنماییم کنید ؟

(این در حالی است که با کتابخانه سوکت به آدرس متصل میشم ، فقط چون سرور node.js هست نمیشه باهاش ارتباط برقرار کرد.)

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

فهمیدم ، دسترسی به اینترنت رو اضافه نکرده بودم.

چون اروری نمیداد متوجه نشدم.

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

فقط ممنون میشم بفرمایید پاسخ چه پیام هایی به رویداد new_message وارد میشه ؟

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

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

فقط ممنون میشم بفرمایید پاسخ چه پیام هایی به رویداد new_message وارد میشه ؟

 // when the client emits 'new message', this listens and executes
  socket.on('new_message', (data) => {
    // we tell the client to execute 'new message'
    socket.broadcast.emit('new_message', {
      username: socket.username,
      message: data
    });
  });
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام میشه لطف کنید یه ذره توضیح سطح پایین هم بدید؟

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

دنبال راهی بودم که عمل بروز رسانی زمانی پیامی توی دیتابیس نشست انجام بشه برای همه کاربرا که به این مطلب رسیدم .

میشه لطف کنید بگید باید چکار کنم ؟؟؟؟

کلا باید سورس خودمو بیخیال بشم (که سمت سرور با php نوشته شده ) یا اینکه نه در کنار اون سورس باید از این کدها استفاده بشه ؟؟؟

اگه باید درکنار کد خودم این کد ها رو قرار بدم چطوری میتونم اینکارو بکنم چون تا بحال از nod.js استفاده نکردم و نمیشناسمش.

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

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

در 11 دقیقه قبل، mja89 گفته است :

سلام میشه لطف کنید یه ذره توضیح سطح پایین هم بدید؟

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

دنبال راهی بودم که عمل بروز رسانی زمانی پیامی توی دیتابیس نشست انجام بشه برای همه کاربرا که به این مطلب رسیدم .

میشه لطف کنید بگید باید چکار کنم ؟؟؟؟

کلا باید سورس خودمو بیخیال بشم (که سمت سرور با php نوشته شده ) یا اینکه نه در کنار اون سورس باید از این کدها استفاده بشه ؟؟؟

اگه باید درکنار کد خودم این کد ها رو قرار بدم چطوری میتونم اینکارو بکنم چون تا بحال از nod.js استفاده نکردم و نمیشناسمش.

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

ترکیب php و node.js زیاد چیز جالبی از کار در نمیاد.

نود گزینه مناسب و کاملی برای ساخت سرویس های بلادرنگ است.

اگر سورس php رو زیاد پیش نرفتید اونو بی خیال بشید.

البته با php هم میشه سوکت نویسی کرد ولی node.js  استاندارد تر و برای اینکار مناسب تره.

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

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

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

در در 1397/03/29, 11:47:24، امین مهدی نژاد گفته است :

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

سلام

جسارتا این کتابخانه خوبی که ساختید ، شبیه به سوکت رویدادی نداره که قطعی ارتباط رو با سرور تشخیص بده ؟!

فرضا حجم بسته نت تمام شد ارتباط قطع میشه دیگه ، یا ارتباط از جانب سرور یا از جانب کلاینت قطع شد چطور بفهمیم ؟

در سوکت رویدادی برای این مورد وجود داره و پس از قطعی بطور خودکار اجرا میشه.

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

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

سلام

جسارتا این کتابخانه خوبی که ساختید ، شبیه به سوکت رویدادی نداره که قطعی ارتباط رو با سرور تشخیص بده ؟!

فرضا حجم بسته نت تمام شد ارتباط قطع میشه دیگه ، یا ارتباط از جانب سرور یا از جانب کلاینت قطع شد چطور بفهمیم ؟

در سوکت رویدادی برای این مورد وجود داره و پس از قطعی بطور خودکار اجرا میشه.

سلام.

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

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

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

:53:

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

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

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

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

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

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

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

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

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

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

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

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