رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

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

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

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


پست های پیشنهاد شده

mahdi0020    10

کاربر عادی

سلام.

 

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

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

 

 

ممنون...

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

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

  • پسندیدن 3

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

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

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

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

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

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

  • پسندیدن 5
  • تشکر 2

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


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

کاربر رو به رشد

سلام

ممنون از شما

http://192.168.1.101:3000

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

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

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

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

در در 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 قرار داده شده است.

منبع

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

  • پسندیدن 1
  • تشکر 1

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مجید آرتا    5,774

مدیر کل سایت

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

سلام

ممنون از شما


http://192.168.1.101:3000

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

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

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

 

سلام

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

  • پسندیدن 2
  • تشکر 1

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


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

کاربر رو به رشد

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

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

سلام استاد

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

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

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

متشکرم

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

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

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

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

  • پسندیدن 1

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


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

کاربر رو به رشد

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

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

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

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

سلام

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    518

کاربر فعال

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

سلام

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

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

 

  • پسندیدن 1

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


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

کاربر رو به رشد

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

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

سلام

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

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

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

در 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
    });
  });
  • پسندیدن 2

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


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

کاربر عادی

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

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

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

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

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

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

کاربر رو به رشد

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

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

سلام

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

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
امین مهدی نژاد    1,912

معاون انجمن

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

سلام

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

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

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

سلام.

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

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

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

:53:

  • پسندیدن 1

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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

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

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

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

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

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


×
×
  • جدید...