Чат с несколькими комнатами

DimaK

Новичок
Чат с несколькими комнатами

Здраствуйте. Я сделал чат с одной комнатой, использующий socket-сервер. Но нужно сделать несколько комнат. Я попробовал добавить в нужных местах цикл
for ($c=0;$c<$number_of_rooms;$c++){...}, но чат перестал работать даже в первой комнате.
Как можно грамотно реализовать систему комнат в чате?
Заранее благодарен.
 

clevel

Новичок
добавь в запросыЮ котрый посылаешь сервеу чата еще один параметр room=25... и на сервере уже сообщения сортируй исходя из данного параметра..
 

DimaK

Новичок
в каком предложении врешь?
Ни в каком.

-~{}~ 26.10.05 15:54:

Это цикл из кода, в котором идёт отправка и приём сообщений
while(true){
$mas[0] = $sock;
for ($count = 0; $count<=MAX_CLIENTS; $count++){
if ($client[$count]!=null){
$mas[$count + 1] = $client[$count];
}
}
$nready = @socket_select($mas, $w=null, $e=null, null);
//добавление нового пользователя
if (in_array($sock, $mas)){
for ($count=0; $count<=MAX_CLIENTS; $count++){
if ($client[$count]==null){
$client[$count] = socket_accept($sock); @socket_setopt($client[$count],SOL_SOCKET, SO_REUSEADDR, 0);
$re1 = implode(" ", $re);
socket_write($client[$count], $re1. chr (0));
$kol++;
for ($ii=0;$ii<=$kol;$ii++){
socket_write($client[$ii], $kol. chr (0));
}
}
}
if (--$nready <= 0){
continue;
}
}

//перебираем клиентов и проверяем их на отправку сообщений
for ($count = 0; $count<=MAX_CLIENTS; $count++){
if (in_array($client [$count], $mas)){
$incoming_data = trim($boolean=socket_read($client[$count], SOCKET_READ));
if (!$boolean){
socket_close($client[$count]);
$client[$count]=null;
$kol--;
for ($ii=0;$ii<=$kol;$ii++){
socket_write($client[$ii], $kol. chr (0));}
}
else {// здесь идёт отправка сообщений}
if (--$nready <= 0){
break;
}
}
}
}
//
Я попробовал добавить
for ($c=0;$c<2;$c++){}
после каждой строчки
for ($count = 0; $count<=MAX_CLIENTS; $count++){
и писать уже не $client и $mas, а $client[$c] и $mas[$c] везде, но это не работает. А как сделать по-другому, я не знаю.
 

dorfey

Guest
какие нафик циклы.
тебе уже дали грамотний совет
добавь в запросыЮ котрый посылаешь сервеу чата еще один параметр room=25... и на сервере уже сообщения сортируй исходя из данного параметра..
ps. сдается мне что ты вообще не понимаешь что тебе нуна делать.
да и правила форума тож не плохо било бы почитать.
 
Сверху