خوب همین 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 تا گروه دارم که مثلا جدا با هم چت میکنن ولی خیلی سخت شده بخواد همینطوری باشه کدهاش غیر قابل هضم میشه...
ممنون میشم کمک کنید که از بس دنبال این مطالب گشتم دارم میترکم واقعا...