نمایش نتایج 1 تا 6 از 6

نام تاپیک: multiple private chat

  1. #1

    multiple private chat

    سلام...
    نمیدونم عنوان مناسبیه یا نه اگه نیست بگید درستش کنم...
    بالاخره کار با socket , node.js رو یاد گرفتم ولی طی تمام مراحل یادگیری این تو ذهنم بود که چطور میشه چندین چت خصوصی داشت مثلا تو فیس بوک میشه همزمان با 100 نفر به صورت جداگانه چت کرد و مثالهای دیگه که زیاده...
    واسه این نوع چت چه کاری لازمه انجام بشه؟؟
    مثلا خودم تو ذهنم اینطوریه که هر چت روی یه port منحصر به فرد اجرا میشه مثلا روی 1000 یه چت داریم روی 1001 یه چت حالا نمیدونم این درسته یا نه!!؟
    اگه این نیست چطوره پس؟؟

  2. #2

    نقل قول: multiple private chat

    هر کاربر سمت سرور یه سوکت داره که میتونیم با اون باهاش ارتباط خصوصی داشته باشیم به وسیله ی سرور...
    اگر اسم همه کاربرا رو نگه داریم به راحتی میتونیم بگیم که به کدوم کاربر یه مسیج فرستاده بشه با دستور:
    users[name].emit('send private message',data);

  3. #3
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: multiple private chat

    شما اگه از socket.io استفاده کنی تمام این امکانات رو درش میبینی.
    هم می تونی با استفاده از channelهای تکی چت های دو نفره درست کنی هم Broadcast کنی هم multicast

  4. #4

    نقل قول: multiple private chat

    خوب همین chanel هایی که میگید رو چطور درست کنم؟؟
    این کده منه:
    app.js



    var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);
    var users1={};
    var users={};
    server.listen(8081);


    app.get('/', function(req, res){
    res.sendfile(__dirname + '/index.html');
    });


    io.sockets.on('connection', function(socket){
    socket.on('send message', function(data,tp){
    if(tp==1){
    for(user in users1){
    users1[user].emit('new message',data);
    }
    } else{
    for(user in users){
    users[user].emit('new message',data);
    }
    }
    });
    socket.on('new user',function ($data,$tp,callback){
    if($data){
    if($tp==1){


    socket.user=$data;
    users1[socket.user]=socket;
    var names=[];
    for(name in users1){
    names.push(name);
    console.log(name);
    }
    for(user in users1){
    users1[user].emit('show user',names);
    }


    } else{
    console.log('tp=0000000000000');
    socket.user=$data;
    users[socket.user]=socket;
    var names=[];
    for(name in users){
    names.push(name);
    console.log(name);
    }
    for(user in users){
    users[user].emit('show user',names);
    }
    }


    } else {
    callback(false);
    socket.emit('err username');
    }
    });
    });



    ----------------------
    index.html:
    کد HTML:
    <html><head>	<title>Chat with socket.io and node.js</title>	<style>		#chat{			height:200px;		}	</style></head><body>		<div id='usern'></div>	<div id="chat"></div>	<form id="send-message">		<input size="35" id="message"></input><br>		<input size="6" id="tp"></input>		<input type="submit"></input>	</form><br />	<form id="username">		<input size="35" id="name"></input>		<input type="submit" value="username send"></input>	</form><br />	<form id="username1">		<input size="35" id="name1"></input>		<input type="submit" value="username1 send"></input>	</form>		<div id='err'> </div>
    
    	<div id='users'>		<form>			<input type="submit" value="120"/>		</form>		<a id='uname1' href="" >user1</a>		<a id='uname'  href="" >user2</a>			</div>	<script src="http://code.jquery.com/jquery-latest.min.js"></script>	<script src="/socket.io/socket.io.js"></script>	<script>
    		jQuery(function(){			alert($vsuser);			var socket = io.connect();			var $messageForm = $('#send-message');			var $messageBox = $('#message');			var $chat = $('#chat');			var $username=$('#username');			var $name=$('#name');			var $username1=$('#username1');			var $name1=$('#name1');			var $usern=$('#usern');			var $err=$('#err');			var $room=$('#tp');						var $uname=$('#uname');						$('a').click(function(e){				alert('fdsafdsa');			}); 			 			$messageForm.submit(function(e){				e.preventDefault();				socket.emit('send message', $messageBox.val(),$room.val());				$messageBox.val('');			});			socket.on('new message', function(data){				$chat.append(data + "<br/>");			});						$username.submit(function (e){				e.preventDefault();				socket.emit('new user',$name.val(),0);				$name.val('');			});						$username1.submit(function (e){				e.preventDefault();				socket.emit('new user',$name1.val(),1);				$name1.val('');			});						socket.on('show user',function($users){				$html='';				for($i=0;$i<$users.length;$i++)				{					$html+=$users[$i]+' <br> ';				}				$usern.html($html);			});			socket.on('err',function(){							$err.html('errrrrrrrrooooorrrr');			});		});	</script>
    </body></html>
    بخش کلاینت زیاد مهم نیست بخش سرور یا همون فایل app رو باید چکار کنم که چتهای چند نفره و دو نفره و غیره و غیره داشته باشم؟؟
    الآن فقط میدونم چت روم گروهی چطوره و تو همین کدها هم 2 تا گروه دارم که مثلا جدا با هم چت میکنن ولی خیلی سخت شده بخواد همینطوری باشه کدهاش غیر قابل هضم میشه...
    ممنون میشم کمک کنید که از بس دنبال این مطالب گشتم دارم میترکم واقعا...

  5. #5
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

  6. #6

    نقل قول: multiple private chat

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

    مثلا 3 کاربر با هم و 5 نفر دیگه با هم در حال چت هستن میشن 2گروه
    یه پیاده سازی معمولی بدون استفاده از دیتابیس انجام دادم این که مثلا مشخصات گروه 3نفری رو بریزیم تو یه متغیر به نام usergroup1 که یه آرایه از کاربراس و گروه 5 نفری رو هم بریزیم تو یه آرایه به اسم usergroup2 حالا وقتی مثلا یه کاربر پیامی ارسال میکنه اگه از گروه 3 نفری باشه به تمام اعضای usergroup1 پیام ارسال میشه... و همچنین برای گروه 5 نفری به صوت جداگانه و طریقه ارسال هم به این صورت:

    for (user in usergroup1)
    {
    usergroup1[user].emit('new message',msg)
    }


    همین روش درسته؟؟

تاپیک های مشابه

  1. Send Message To Active Windows in Yahoo Chat
    نوشته شده توسط madmax در بخش VB.NET
    پاسخ: 4
    آخرین پست: جمعه 09 آبان 1382, 18:59 عصر
  2. آیا می‌خواهید در این سایت یک بخش Chat داشته باشیم؟
    نوشته شده توسط Doctor Sinohe در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 14
    آخرین پست: دوشنبه 05 آبان 1382, 13:55 عصر
  3. نوشتن Chat تحت شبکه LAN
    نوشته شده توسط zehs_sha در بخش VB.NET
    پاسخ: 0
    آخرین پست: چهارشنبه 05 شهریور 1382, 08:59 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •