ورود

View Full Version : کمک در نوشتن برنامه شبکه اجتماعی (نظیر وایبر)



mohsen22
یک شنبه 25 خرداد 1393, 12:40 عصر
سلام . می خوام شروع به نوشتن چنین برنامه ای بکنم ... ممنون میشم اگه اساتید تجربیاتشونو در اختیار بنده و دیگران بزارند و ما را کمک کنند.
پیگیری های انجام شده:
در نمونه برنامه ها سورس برنامه وی چت وجود داره که شروع کردم به ترجمه کردنش !! نمی دونم نیازمو برطرف می کنه یا نه
اگه شد اونوقت سرور و کد نویسی سمت سرور رو چیکار کنم!؟
باز هم تشکر

mohsen22
یک شنبه 25 خرداد 1393, 14:19 عصر
کسی با مثال مذکور کار کرده؟ لطفا نصب کنید و بگید طریقه کارکردنش چجوریه؟ مرسی

saeed_g21
یک شنبه 25 خرداد 1393, 17:02 عصر
نمیخوام ناامیدت کنم ولی هزینش و ریسکش بالاست
نمی صرفه!!!... .

Nevercom
یک شنبه 25 خرداد 1393, 19:18 عصر
این توضیحات بر اساس دانش محدود من هست، بر این تکیه نکنید و خودتون برای راه حل بهتر جستجو کنید.

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

برای اینکار شما به یک سرور نیاز دارید. اپلیکیشن های سرور آماده ای مثل OpenFire وجود داره که امکانات خوبی برای مدیریت کاربران در اختیار میزاره. این اپلیکیشن تحت جاوا هست
برای اندروید هم کتابخانه هایی مثل aSmack وجود داره که اتصال به سرور رو مدیریت می کنه.

شاید خودتون بتونید با Socket Programming همه ی اینها رو خودتون بر اساس نیاز بنویسید، اما شاید این فریم وورک ها کارتون رو راحت تر کنن.

mohsen22
یک شنبه 25 خرداد 1393, 19:49 عصر
ممنون از راهنمایی شما عزیزان.. بلاخره باید از یه جا شروع کرد.. میخوان روشی که انتخاب میکنم بهترین و کامل ترین باشه که در اینده کم نیارم...
ممنون اگه داشته هاتونو ولو اندک در اختیارم بزارید. موضوع رو اینجا ادامه میدیم تا ببینیم خدا چی می خواد.

mohsen22
یک شنبه 25 خرداد 1393, 20:07 عصر
یه مثال خوب پیدا کردم .. لطفا نگاه کنید و اگه ممکنه نظر بدید .. مرسی
http://quickblox.com/developers/Android_XMPP_Chat_Sample#Connecting_to_Web_XMPP_Ch at

darkenerboy
دوشنبه 26 خرداد 1393, 00:18 صبح
صرفا جهت اطلاع



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

harani
دوشنبه 26 خرداد 1393, 08:28 صبح
سلام . می خوام شروع به نوشتن چنین برنامه ای بکنم ... ممنون میشم اگه اساتید تجربیاتشونو در اختیار بنده و دیگران بزارند و ما را کمک کنند.
پیگیری های انجام شده:
در نمونه برنامه ها سورس برنامه وی چت وجود داره که شروع کردم به ترجمه کردنش !! نمی دونم نیازمو برطرف می کنه یا نه
اگه شد اونوقت سرور و کد نویسی سمت سرور رو چیکار کنم!؟
باز هم تشکر


استاد بهنام آقاجانی از جمله افرادی هستند که در بسیاری از رشته های برنامه نویسی تبحر ویژه ای دارند یکی از پروژه هایی که انجام داده اند پروژه ی wichat (http://uncocoder.com/%D9%86%D9%85%D9%88%D9%86%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%B4%D8%AF%D9%87) است . فکر کنم ایشان بتواند کمکی به شما کند سایت ایشان http://uncocoder.com/
میباشد که در قسمت تماس با ما میتوانید به استاد ایمیل یا ارتباط تلفنی داشته باشید .

darkenerboy
دوشنبه 26 خرداد 1393, 08:44 صبح
دقیقا مارکت ایران اپس مال
استاد بهنام آقاجانی هستش ؟

#root#
دوشنبه 26 خرداد 1393, 08:54 صبح
دقیقا مارکت ایران اپس مال هستش ؟
تنها برنامه نویسی نسخه قبل توسط ایشون انجام شده بود (Iranapps مدتی تعطیل شده بود و جدیدا فعال شده)

mohsen22
دوشنبه 26 خرداد 1393, 09:44 صبح
ممنون.... می خوام خودم شروع کنم به نوشتن.... مدیریت محترم انجمن. نظری ندارند؟ سایر اساتید؟

dasssnj
دوشنبه 26 خرداد 1393, 09:58 صبح
اگه فیلتر شه چی کار می کنی؟

Nevercom
دوشنبه 26 خرداد 1393, 11:22 صبح
اون QuickBlox رو من قبلاً دیده بودم، SDK خوبی هست، اما حالت مجانیش برام محدود بود (اون موقع فکر کنم پلن هاش فرق می کرد). اگر حالت رایگانش جوابگوی نیازت هست ازش استفاده کن.

mohsen22
دوشنبه 26 خرداد 1393, 17:54 عصر
ممنون. درسایت ثبت نام کردم و یوزر و پس هم دریافت نمودم.... اما نمونه مثال خود سایت رو در اکیلیپس نتونستم اجرا کنم.. هر چند زحمته اما ممکنه یه نگاه بهش بندازین؟ مرسی

negative60
دوشنبه 26 خرداد 1393, 20:46 عصر
قبل از اينکه به فکر ساختن کلاينت باشيد بايد نسخه سرور رو طراحی کنيد و بسازيد و اگر هدفتون سروری باشه که بتونه هم زمان تعداد بالايی کاربر رو پشتبانی کنه قطعا نسخه سرور بايد با يک زبان نيتيو مثل C/C++ انجام بشه

shahin bahari
دوشنبه 26 خرداد 1393, 21:20 عصر
قبل از اينکه به فکر ساختن کلاينت باشيد بايد نسخه سرور رو طراحی کنيد و بسازيد و اگر هدفتون سروری باشه که بتونه هم زمان تعداد بالايی کاربر رو پشتبانی کنه قطعا نسخه سرور بايد با يک زبان نيتيو مثل C/C++‎ انجام بشه

اتفاقا با PHP و یا جاوا باشه بهتره. هندل کردن ترافیک http با سرعت اجرای یه اپلیکیشن فرق داره.

negative60
دوشنبه 26 خرداد 1393, 22:21 عصر
اتفاقا با PHP و یا جاوا باشه بهتره. هندل کردن ترافیک http با سرعت اجرای یه اپلیکیشن فرق داره.
مفسر php خودش با c نوشته شده چطور ميگيد php بهتره, برای همچين پروژه اي ساختن سرور با يک زبان تحت وب اصلاً مناسب نيست به خاطر کمبود هايی که تو پروتکل HTTP وجود داره موجب ميشه طراحی سرور به شکل ديگری انجام بشه که در نتيجه باعث افزايش منابع و کاهش سرعت خواهد شد, يکی از اين مشکلات نبود امکان برقراری ارتباط دائم بين سرور و کلاينت هست که همين باعث به وجود اومدن مشکلات ديگه ميشه مثل مشکل مديريت کاربران آنلاين و يا نا ممکن شدن تماس صوتی و تصويری.
در مورد جاوا و زبان های دات نتی هم به خاطر اينکه برنامه های توليد شده در ماشين مجازی اجرا ميشوند سرعت اجرا و مديرتيت منابع برای يک سرور قدرتمند پايين خواهد بود

در ضمن هيچ سرور بزرگی رو نخواهيد ديد با جاوا يا زبان تحت وب ساخته شده باشه: اسکايپ، ياهو مسنجر، گوگل تاک، وايبر ،واتس آپ و ...

shahin bahari
دوشنبه 26 خرداد 1393, 23:15 عصر
بله درسته مفسر PHP با سی نوشته شده. سی هم با اسمبلی نوشته شده. پس بهتره همه چیو با اسمبلی بنویسیم که بالاترین پرفرمنس رو داشته باشیم! این حرف درست هست ولی در عمل هیچ وقت اتفاق نمی افته. شما همین مفسر PHP رو هم با سی دوباره بنویسید به مراتب ضعیف تر از مفسر فعلی میشه و دلیلش هم این هست که کلی چیز هست که باید حواست بهش باشه و امکان نداره بدون باگ بتونی پیاده کنی! در عوض این زبان های ساخت یافته رو هزاران نفر اصلاح کرده اند. پس با توجه به اینکه نهایتا چند نفر قراره برنامه سرور رو بنویسند و منابع شرکت های بزرگ رو ندارند بهتره که از چیزی استفاده کنند که سریع تر به نتیجه برسونشون.
این سرور هایی که گفتید دیگه از سرور های فیس بوک با این همه بازدید که داره بزرگتر که نیستند. فیس بوک اکثر قسمت هاش با LAMP هست. البته منکر این نمیشم که سی اصلا استفاده نمیشه ولی زبان اصلی نیست.خیلی از قسمت ها با سی،پایتون، روبی و..... باید نوشته بشه اما زبان اصلی همون PHP هست.
http://stackoverflow.com/questions/3690092/what-programming-language-does-facebook-use
http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/

mohsen22
دوشنبه 26 خرداد 1393, 23:26 عصر
ممنون... بازم نظر بدید لطفا داریم استفاده می کنیم

negative60
سه شنبه 27 خرداد 1393, 03:43 صبح
بله درسته مفسر PHP با سی نوشته شده. سی هم با اسمبلی نوشته شده. پس بهتره همه چیو با اسمبلی بنویسیم که بالاترین پرفرمنس رو داشته باشیم! این حرف درست هست ولی در عمل هیچ وقت اتفاق نمی افته. شما همین مفسر PHP رو هم با سی دوباره بنویسید به مراتب ضعیف تر از مفسر فعلی میشه و دلیلش هم این هست که کلی چیز هست که باید حواست بهش باشه و امکان نداره بدون باگ بتونی پیاده کنی! در عوض این زبان های ساخت یافته رو هزاران نفر اصلاح کرده اند. پس با توجه به اینکه نهایتا چند نفر قراره برنامه سرور رو بنویسند و منابع شرکت های بزرگ رو ندارند بهتره که از چیزی استفاده کنند که سریع تر به نتیجه برسونشون.
این سرور هایی که گفتید دیگه از سرور های فیس بوک با این همه بازدید که داره بزرگتر که نیستند. فیس بوک اکثر قسمت هاش با LAMP هست. البته منکر این نمیشم که سی اصلا استفاده نمیشه ولی زبان اصلی نیست.خیلی از قسمت ها با سی،پایتون، روبی و..... باید نوشته بشه اما زبان اصلی همون PHP هست.
http://stackoverflow.com/questions/3690092/what-programming-language-does-facebook-use
http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/

مقايسه شما منطقی نيست C تمام نياز های برنامه نويس رو براورده ميکنه و دليلی بر دوباره ساختن وجود نداره زمانی حرف شما درسته که php و کلاً وب سرو نياز های برنامه نويس رو براورده کنه. اگر وب سرور و php تمام نياز های برنامه های تحت شبکه رو براورده ميکرد متخصصان پروتکل های گونا گون رو ابدا نميکردن. هر زبانی رو بهر کاری ساختند زبان تحت وب اسمش روش هست برای ساختن سايت و کارهای مبتنی بر وب مناسب هست نه برنامه چت صوتی تصويری! با اهداف بزرگ, درسته که به نحوی ميشه چت متنی ساخت اون هم نه به شکل دلچسبی اما اصولی و درست نيست همانطور که ميشه با چاقو يک پيچو شل يا سفت کرد .


ساختن از نو کار شرکت های بزرگ نيست فقط تجربه و تلاش و پشتکار ميطلبه اين يک نمونه (http://www.teamspeak.com/) اوپن سورس شرکت بزرگی هم پشتش نبوده, بعضی وقتا سرعت در انجام پروژه مطرح نيست توی اهداف خاص قدرت و نتيجه کار همانقدر اهميت پيدا ميکنه که باعث شکست يا موفقيت پروژه ميشه.

فيسبوک يک سايت هست نه پيام رسان و نميشه اون رو با برنامه مقايسه کرد چون کلاً نحوه کار فرق داره اگر هم منظورتون چت فيسبوک (https://developers.facebook.com/docs/chat/) باشه که اون هم با XMPP ساخته شده .

shkna1368
سه شنبه 27 خرداد 1393, 10:30 صبح
من روی همچین پروژه ای کار کردم.تجاربم رو به طور خلاصه میگم.
شما اول باید ابتدا به فکر سیگنالینگ و برقراری ارتباط اولیه باشید.پروتکل سیگنالینگ SIP هستش.در سمت سرور میتونید از mobicent sip servlet استفاده کنید و سمت client ها میتوانید ازsipdroid استفاده کنید(سرور و کلاینت با زبان جاوا)
مرحله دوم انقال صوت از افراد به سرور و ارسال صوت به طرف مقابل که از پروتکل RTP استفاده میشه.در جاوا از JMF سمت سرور و باز هم با sipdroid یا jlibrtp سمت کلاینت استفاده کرد.
برای همچین کری 5 نفر 10 ماه کار کردن تا به نتیجه رسید

mohsen22
سه شنبه 27 خرداد 1393, 13:05 عصر
مرسی دوست من... اگه بخواهیم صوت رو بزاریم کنار... فقط در ارسال و دریافت متن باشه چی؟ در کل قضیه و پروتکلهای انتخابی چه تغییری ایجاد میشه؟

shkna1368
سه شنبه 27 خرداد 1393, 14:13 عصر
شما با استفاده از پروتکل sip و پیغام sip message request قادر به ارسال مسیج خواهید بود
کتاب زیر خیلی بهتون کمک میکنه :
http://www.amazon.com/Internet-Multimedia-Communications-Using-SIP/dp/0123743001/ref=sr_1_72?s=books&ie=UTF8&qid=1403000400&sr=1-72&keywords=sip
اینم لینک دانلود:
http://196.29.172.66:8080/jspui/bitstream/123456789/4861/1/Internet%20Multimedia%20Communications%20Using%20S IP~tqw~_darksiderg.pdf
(http://196.29.172.66:8080/jspui/bitstream/123456789/4861/1/Internet%20Multimedia%20Communications%20Using%20S IP~tqw~_darksiderg.pdf)
این کتاب هم عالیه :
http://filepi.com/i/Rv4EqV8

mohsen22
سه شنبه 27 خرداد 1393, 16:57 عصر
ممنون حتما می خونمشون

mohsen22
سه شنبه 27 خرداد 1393, 19:08 عصر
این (http://www.edumobile.org/android/android-development/socket-programming/) مثال از طریق سوکت پروگرامینگ چت بین دو اپلیکیشن بوسیله امولاتور رو فراهم می کنه
خب حالا اگه بخواهیم وب سرور داشته باشیم اونوقت چی باید بکنم؟
مرسی

shkna1368
چهارشنبه 28 خرداد 1393, 08:07 صبح
شما وقتی درگیر sip میشید خود ابزاری که sip رو پیاده سازی کرده،کار سوکت رو انجام میده.وقتی سرور پاش وسط میاد،شما داده ها رو بهه سرور میدید و سرور به طرف مقابلتون میرسونه.شما وقتی با استاندارد جلو میرید دیگه درگیر لایه های زیر مثل سوکت نیستید

dasssnj
چهارشنبه 28 خرداد 1393, 11:36 صبح
در کل کار آسونی نیست باید خیلی وقت بزاری و یه نفری هم که نمیشه باید چند نفری حسابی کار کنین

mohsen22
چهارشنبه 28 خرداد 1393, 19:06 عصر
ممنون از همه دوستانی که راهنمایی می کنند یا تصمیم دارند کمکم کنند!

mohsen22
چهارشنبه 28 خرداد 1393, 23:24 عصر
بازم سلام ...مثالی رو با موفقیت تست کردم که ثبت نام و لاگین رو از طریق اسکیولایت - ‍پی اچ پی و مای اسکیوال انجام میده .. لطفا اگه ممکنه تستش کنید و بفرمایید در ادامه چه کنم؟
http://s5.picofile.com/file/8127003350/AndroidLoginAndRegistrationWithMySQLPHPSQLite.rar. html

مرسی

samanbank
چهارشنبه 28 خرداد 1393, 23:43 عصر
وایبر نسخه یک

یک نوع شبکه irc بود که با mysql کارمیکرد

حالا هم کلا برای خودش سرور نوشته با پایتون هم نوشته سرور رو که عکس و صوت و تصویر هم میشه منتقل کرد !!!

البته سرویس ویس وایبر کلا روی ویپ هست و براش سرور جداگونه گرفته خودش هم اینکارو نکرده به یه شرکتی داده مثل اسکایپ اینکارو براش کرده اسم شرکت هم ovh هست ovh voip یک دیتاسنتر در فرانسه

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

mohsen22
یک شنبه 08 تیر 1393, 19:43 عصر
سلام . کسی جدیدا با quickblox کار کرده ؟

mohsen22
شنبه 14 تیر 1393, 10:12 صبح
بیدا کردممممممممممم. یه سورس توب اونم با php وmy sql..... به به.... هر کی میخواد اعلام کنه.......

Nevercom
شنبه 14 تیر 1393, 11:36 صبح
بسیار علاقه مند شدم ببینم چطور با MySQL و PHP پیاده سازی شده، اگه ممکنه بیشتر توضیح بدید

mohsen22
شنبه 14 تیر 1393, 12:16 عصر
چشم... حتما... دیگه کسی مایل نیست؟ .... قیمت هم دستمه ها... زیر صد هزار کاربر... پنجاه میلیون تومن!!... چشمک


اینم ویژگی هاش !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Features


User registration
User authentication
Adding a new friend by username
Approving a friend
Messaging with a friend in list
Shows online and offline users
Runs a background service in order to get messages even when the application is closed.
Uses notification area when a new message is received.
Quiting the application(kills the background service)

حامد مصافی
دوشنبه 16 تیر 1393, 13:41 عصر
در ابتدا باید پروتکل مورد استفاده خودتونو مشخص کنید. راههای زیادی دارید ۲ مورد رو دوستان در همین تاپیک ذکر کردند.
۱- پروتکل jabber یا همون xmmp که مورد استفاده گوگل‌تالک و مسنجر فیس‌بوک هست. این پروتکل پیام‌ها رو با فرما xml ارسال می‌کنه
۲- پروتکل sip که اکثر پیام‌رسان‌ها با اون کار می‌کنند.


برای کار با xmmp یکی از کتابخانه‌های (http://xmpp.org/xmpp-software/libraries/)مورد مناسب رو دانلود کرده و کار رو شروع کنید. من با کتابخانه qxmmp کار کردم. خیلی پروتکل ساده و روانیه

اما پیشنهاد من استفاده از sip هست. sip امکان استفاده از rtp رو هم به شما میده. یعنی شما می‌تونید صدا و تصویر رو هم در برنامه اضافه کنید. سمت سرور هم برای یک کار معمولی نیاز به یک asterisk (http://www.asterisk.org/) یا نمونه ساده شده اون الستیکس (http://www.voip-iran.com/fa/) دارید
برای این پروتکل کتابخانه‌های زیادی وجود دارند که به نظر من بهتره از کتابخانه‌های دارای اسکت rtp استفاده کنید.
دو نمونه از بهترین‌ها عبارتند از:
pjsip.org (http://pjsip.org)
linphone.org (http://linphone.org)

با linphone کار نکردم اما pjsip امکانات خوبی برای کار در اندروید داره جز اینکه ویدئو برای اندروید در نسخه ۲.۳ اضافه خواهد شد.

جدا از اینها مطالعه ساختار پروتکل sip هم خیلی کمک می‌کنه.

اگه دلیل مناسبی برای وارد شدن در این حیطه از برنامه‌نویسی نداری توصیه می‌کنم خودتو درگیر نکنی.

mohammadzadeh68
شنبه 11 مرداد 1393, 15:25 عصر
کسی درباره tcp hole punching , و نحوه پیاده سازیش اطلاعاتی داره ؟