محمد رضا
3 سال پیش توسط محمد رضا مطرح شد
12 پاسخ

برقراری ارتباط وب سایت بر روی سرور با لوکال

سلام دوستان
یه پروژه تحت وب داریم در برخی موارد نیاز به ارتباط برقرار کردن و تبادل داده با لوکال هست حالا ب هر دلیلی ولی خب مثال هایی میزنم ک واضح تر باشه
مثلا برنامه callerid که شماره تماس رو میگیره و نمایش میده توی یه برنامه ی c# که کدش هم موجود هست
یا دستگاه کارتخوان pcpos ها که ارتباط بگیریم و قیمت رو نمایش بدیم بر روی اون
البته ممکنه بگید خب فایل dll رو به همون پروژه ی تحت وبمون اضاف کنیم و کد رو پیاده سازی کنیم به همون شکل که نیاز به ارتباط نباشه
خب در مرحله ی اول بگم ک میدونید برای این امر نیاز به دسترسی به فایل php.ini هست و در هاست های اشتراکی همچین موردی در دسترس نیست
و برای یک امکان کوچیکی مثل caller id یا همچین مواردی ارزش این که بریم سمت VPS که خب هزینه های کانفیگ و نگهداری بالایی هم داره در مرحله ی اول به نظرم خوب نیست و اگر ب طریق دیگه ای بشه این ارتباط رو گرفت عالی میشه
سوال من اینه ک ایا میشه توی پروژه ای که روی وب سرور قرار داره و خب سورسو همه چیشم هست برا خودمونه رو به پروژه ای لوکال که باز هم سورسش موجوده به شیوه ای متصل کرد که تبادل داده داشته باشن؟


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

دوستان نظری ندارید؟


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 3 سال پیش مطرح شد
1

سلام
@salar.mohammad2013

ببینید شما وقتی پروژه ای رو میبرید روی هاست یا روی سرور اینکه بخوایید از جایی به صورت ریموت وصل بشید و تغییراتی بدید
خب از طریق FTP یا SCP یا SSH قابل انجام هست این کار

اما صحبت شما من رو یاد قضیه دیگری انداخت
ابزاری هست تحت عنوان Ngrok :
سایتش رو هم براتون میگذارم

https://ngrok.com

این ابزار چی کار میکنه؟
به فرض شما یه پروژه ای رو روی لوکال دارید و دارید کار میکنید باهاش ، اینو اگر بخوایید در دسترس عموم بگذارید ، خب باید ببرید رو هاست ، تحت دامنه ای یا آیپی به کسی نشون بدید
اما این ابزار میاد
پروژه ای که شما در لوکال هاست دارید رو به یه آدرس موقت و به صورت لینک قرار میده ، که اون آدرس میتونید به بقیه بدید و ببینن پروژه شمارو
هر موقع هم خواستید قطعش میکنید! دستورات مختلفی هم داره میتونید توی داکیومنتش بخونید
یه جورایی وب سرور مجازی و موقت برای شما میسازه.

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


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@Alimotreb
سلام و درود و س‍پاس از پاسخ شما دوست عزیز
خیر من خوب موضوع رو باز نکردم این طور که به نظر میاد
اینطوری تصور کنید که من پروژه ی خودم رو میخوام ب دو بخش تبدیل کنم
بخشی از پروژه بر روی سرور و بخشی از اون بر روی سیستم کلاینت و کاربر
توضیحات شما در رابطه با این بود که من لوکال خودم رو یه جورایی به سرور تبدیل کنم

اما من میخوام ب طریقی بین بخش های مختلف پروژه که بخشیش روی لوکال کلاینت و بخشیش بر روی سرور هست ارتباط برقرار کنم
حالا این بخش روی کلاینت ممکنه یه برنامه c# باشه تحت ویندوز یا مثلا دوباره php باشه و تحت وب مهم نوع ارتباط هست که چی باشه

مثالی هم که زدم ارتباط دستگاه caller id یا دستگاه کارت خوان با سیستم هست که توی هاست اشتراکی امکانش وجود نداره و نیاز به vps هست
روشی برای دور زدن این موضوع مد نظر هست


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 3 سال پیش مطرح شد
0

سلام
@salar.mohammad2013

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

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

مفهوم لوکال با مفهوم کلاینت متفاوت هست

پروژه شما گیریم از دیوایس های مختلفی استفاده کنه
پرینتر ، کالر آیدی ، کارت خوان و شاید هزاران دستگاه دیگه که یا رو سرور هست یا رو کلاینت نصب میشه
ارتباط این موارد به هم ملزم به بودن شبکه پایدار و مستقل هست ( مثل چی : اینترنت یا شبکه ای ک پیکر بندی بشه در ارگانی ، سازمانی جایی به عنوان شبکه داخلی ولی همه دیوایس ها مرتبط باشن)
واژه لوکال ، به شبکه داخلی هر کلاینت مرتبطه!
قطعا شما هر برنامه ای
هر دیوایسی
یا هر سخت افزار و نرم افزاری روی کلاینتتون داشته باشید و بخوایید تبادل اطلاعات با سرور و یک جای مرجع انجام بدید
نیاز به شبکه مستقل مثل اینترنت و یک پروتکل معین و مشخص داره
یک جایی شما باید API داشته باشید دیگه ( یا یه چارچوب برای تبادل اطلاعات ) ! بدون اون ک نمیشه!
همین کارت خوان هایی که هستن چه سیار چه سیمی ، همه یا از سیم کارت یا از خط تلفن تحت یه پروتکل مشخص اطلاعات ارسال و دریافت میکنند

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


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@Alimotreb
لوکال و کلاینت منظورم لوکالی هست که کاربر استفاده میکنه
یعنی سیستم کاربر و استفاده کننده از پروژه ی من که میشه کلاینت در سیستم خودش که میشه لوکال برای اون شخص پروژه ی دوم و برنامه ی دومی که قراره ارتباط بگیره رو داره
منظورم اینه همه ی کاربر ها اون برنامه ی جانبی رو نصب میکنن تو سیستم خودشون :(


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@Alimotreb
متوجه منظورتون هستم
نمیخوام سیستم جوری پیاده سازی بشه که من توی برنامه ی جانبی بیام درخواستی سمت سرور بدم که اون جوابی به من بده و عملی انجام بشه
این شیوه میشه کاملا دو یا سه نرم افزار جدا ک خودشون به صورت اتوماتیک با هم ارتباطی ندارن
منظور من چیزی مثل وب سوکت و ارتباطات اتوماتیک بین این هاست که مثلا سرور وقتی عملی انجام میده و به صفحه ی وب من ارسال میکنه اون برنامه ی جانبی بتونه ارتباط بگیره باهاش و عملی رو انجام بده
نمیهوام ب صورت دایمی در حال ارسال درخواست ب سمت سرور باشن
یا در برخی موارد کاربر مجبور شه بازشون کنه و درخواستی بده به سرور
مثلا در همین بحث کارتخوان سفارشی که ثبت میشه اگر بخوایی قیمت رو بدی به دستگاه در برنامه ی جانبی مجبوری حداقل شماره سفارش رو وارد کنی درخواست بره سمت سرور مبلغ رو بگیره برگردونه و ما بدیمش به کارتخوان (یا مبلغ رو وارد کنیم که خطای انسانی داره)
متوجه منظور شبکه و ارتباطات اینچنینی بین سیستم ها هستم
دنبال راه حل خاصی هستم برای این موضوع ک گفتم و نمیدونم چیزی وجود داره و اصلا شدنی هست یا نه


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 3 سال پیش مطرح شد
0

سلام مجدد
@salar.mohammad2013

ببینید شما در یک شهر هستید ، منم در یک شهر
شما به من یه دستگاهی یا یه دیوایسی یا یه نرم افزاری دادید که از خدمات شما استفاده کنم درسته؟
نرم افزار شما رو من سمت خودم دارم
این نرم افزار یا دائم الران هست یعنی 24ری داره تبادل اطلاعات میکنه یا ن، فقط وقتایی که من میخوام استفاده کنم
شما یا باید نرم افزار رو به واسط شبکه مثل اینترنت وصل کنی که من سمت خودم رو به سمت شما متصل کنم یا ن باید یه شبکه جدا تعریف کنید که اون یا وابسته به اینترنت هست، یا ن توسط کاستوم سازی توسط زیر ساخت قابل ارائه به شماست این از بحث شبکه اش.
خب حالا در اینجا عملیات نرم افزار شما
یا دائم به سمت سرور در حال پردازش اطلاعات هست یا ن به صورت آفلاین، من 1 ماه از از نرم افزار یا سخت افزار شما استفاده میکنم اطلاعات رو در پایگاه داده داخلی ( لوکال ) هست ذخیره میکنم و سر هر ماه یا سر هر تایم مشخصی ، مثل خیلی از نرم افزار های حسابداری ، یا انبار گردانی ، سر ماه میام و از سخت افزار یا نرم افزار خروجی داده میگیرم

الان کارت خوان هارو دیده باشید چرا بروز رسانی خودکار نمیکنند ، مسئولشون میاد فلش میزنه هم خروجی به شما میده هم ورژن رو ارتقا میده و ... کارای دیگه!

یا پروژه آنلاین هست ، یا آفلاین!
آفلاین اگر باشه کلا به هیچ شبکه ای نیاز نیست وصل شه ، اطلاعات رو داخل خودش ذخیره میکنه شما به عنوان ساپورت میرید و به صورت فیزیکی یا شاید سالی 1 بار عملیات خودتون رو روش انجام میدید
اگرم آنلاین باشه که توضیح دادم ، باید اطلاعات در یک پروتکل مشخص حالا یا API یا یا یه مسیر مشخص انجام شه
از این 2 حالت خارج نیست دوست عزیز

موفق باشید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@Alimotreb
متاسفانه توضیحات کاملا دور از پاسخ دارید میدید و اشاره ای به موضوع اصلی سوال و راه حلی براش ارایه نمیدید
دلیلی نداره کاربر ب سیستم من وصل بشه که
من که نگفتم پروژه روی سیستم منه و سیستم کاربر رو میخوام به سیستم خودم متصل کنم

پروژه اگر لوکال باشه چ نیاز به بخش بندی کردنش هست؟(برای کاری که مطرح کردمش ) توی عنوان سوال مطرح کردم دلیل کار اینه که هاست اشتراکی مثلا سوکت رو غیر فعال میکنه یا دسترسی به فایل php ini ب من نمیده که بتونم ‌dll مرتبط با pos رو براش تعریف کنم

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

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

@hesammousavi
@websaz
@gomnam
@ajdar9667
@rezajahangir
@samanzdev
@mimsadAlef
@juza66
@mohaligateway
@muhammad


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

محمدرضا بنظرم همون اول باید برنامه رو برای دسکتاپ طراحی میکردی که این مشکلات رو نداشته باشی!
شما باید اول نیاز سنجی میکردی که برنامه شما مخصوص رستورانه پس باید با چاپگر و یا دستگاه کارتخوان ارتباط بگیره و اپلیکیشن وب این دسترسی رو نداره یا اگر داره به دردسرش نمیارزه و نمیصرفه! این دلیل نیست چون وب راحتتره و میتونی خوشکل پروژه رو تحویل بدی بیخیال الزمات پروژه بشی!

دوم اینکه نمیخوای Vps بگیری که با کاستومایز کردن php.ini به اون هدفت برسی بازم یک بحثه!!
سوم اینکه نمیخوای برنامه سی شارپی شما دائم در فواصل زمانی یک url رو کال کنه و اگر اطلاعاتی بود برنامه سی شارپی شما بیاد این اطلاعات رو بگیره و روی کارتخوان نمایش بده باز یک بحث دیگه س !!

چهارم همیشه ساده ترین و راحتترین حالت رو برای نرم افزار خودت استفاده کن! چرای نرم افزار رستورانی شما باید تحت وب باشه درصورتی که نیاز به کار با سخت افزار کاربر رو داری؟!!

پنجم بیا نرم افزار رو برای دسکتاپ طراحی کن و برای اینکه روی وب هم اطلاعات رو داشته باشی بعد از ذخیره اطلاعات در اپلکیشین ویندوزی اون داده ها رو هم بصورت Async سمت وبسرویس خودت بفرس و ذخیره شون کن تا بتونی بصورت انلاین هم مشاهده کنی اطلاعات رو => در صورت لزوم اپلکیشن ویندوزی شما هم بتونه با درخواست ها در فاصله های زمانی مشخص اطلاعاتی که روی وبسرویس شما هست رو بگیره و وارد دیتابیس دسکتاپ شما بکنه!


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
1

@juza66
سلام داداش
این که پروژه میره روی vps رو میتونم ببینم از الان چون نیاز داره
وبرای این کار که روی لوکال برنامه جانبی وجود داشته باشه کلک هایی هم وجود داره مثل کپی اطلاعات روی کلیپ بورد و استفادش توی اون برنامه جانبی که خب کاربر نیاز به کلیک و ثبت داره
حرفت کاملا صحیحه و من تاییدش میکنم و راه حل رو به جای لوکال vps میدونم تا اینجای کار و دلایل آنلاین بودن و تحت وب بودن پروژه رو هم چند موردش رو نام میبرم

جدای از توانایی و تنوع و راحتی و هرچیزی ک ب شخص بیشتر ربط داره
در مرحله ی اول اینه که نیاز به نصب نداره و راحت میتونی توی یه مجموعه دهتا بیستا سیستم همزمان بهره ببرن ازش
مورد دوم امکاناتی داره مثلا برای پیک که باید اینترنتی و انلاین باشه
مورد سوم خرید انلاین و سفارش آنلاین رو خواهد داشت که باز هم نیاز به وب داره
و چهارم میتونم بگم ابدیت کردنش برای مشتری و همه ی سیستم هایی که ازش استفاده میکنن خیلی راحته و توی سرور انجام میشه
مورد مهم تر برای هزینه های خدمات و هرچیزی قدرت گرفتن پروژه رو از مشتری داری(خیلی موارد دیدم سیستم جامع گلستان دانشگاه حتی این کار رو میکنه)
و مورد دیگه باز هم مدیریت از هر شهر و هر جایی دسترسی راحت به اطلاعات داره
باز هم میتونم ب این مورد ک درگیر لایسنس گذاری لوکال پروژه ویندوزی نمیشم

و در پایان چون میدونم سوال میشه تو ذهنتون ک خب برنامه جانبی که این امکانات رو نداره چی؟
در این مورد میگم برای pos‌تعداد دستگاه های متصل به سیستم کم هست یعنی واحت پرداخت معمولا یک جا یا تعداد کمیه

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

در رابطه با چاپ هم مشکل با chrome حل شد دستور چاپ بدون دسترسی رو میده


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 3 سال پیش مطرح شد
0

سلام
@salar.mohammad2013

اونچه که من از پروژه شما متوجه شدم و برداشت کردم رو خدمتتون توضیح دادم
توضیحات راجب انتخاب نوع شبکه و نوع پروژه رو هم دادم

راه حل هم تو توضیحاتم بود

بقیه دوستان هم نظراتشون رو بدن.
امید وارم مفید بوده باشه.
موفق باشید


محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 3 سال پیش مطرح شد
0

سلام فکر کنم بحثی هست با نام webUSB فقط اسمش رو شنیدم
برای ارتباط با یو اس بی های کاربره


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام