Fallow
Новичок
Здрасте
Не могу разобраться с сокетами в php.
Хочу сделать банальный реал тайм на php+flash.
Порылся в функциях по работе с сокетами, ну не совсем догнал что это.
Собственно вот код php:
Вот as3:
А если я хочу например отправить сообщение попозже, реал тайм же всё таки хочу.
Например так (в самом деле тут будет например проверка новых записей в бд или ещё где нибудь)
То не приходит уже ничего во flash...
Не могу разобраться с сокетами в php.
Хочу сделать банальный реал тайм на php+flash.
Порылся в функциях по работе с сокетами, ну не совсем догнал что это.
Собственно вот код php:
PHP:
//Разрешаем скрипту работать бесконечно
set_time_limit(0);
//Выводим echo сразу, а не после загрузки всей страницы как это происходит по умолчанию
ob_implicit_flush();
$address = "127.0.0.1";
$port = 80;
//Создаём сокет
if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) == true) echo 'ok!';
//Привязываем созданный сокет определённому адрессу и порту
if(($ret = socket_bind($socket, $address, $port))== true) echo 'ok!';
//Прослушиваем сокет
if((socket_listen($socket,1)) == true) echo 'ok!';
do //Ждём клиентов
{
if(($newClient = socket_accept($socket)) == true)
{
//Отправляем сообщение подключившемуся клиенту
$clientMessage = "Привет!";
socket_write($newClient,$clientMessage);
}
}
while(true);
Вроде как всё подключается, и сообщение приходит.//Создаем обьект сокет
var socket:Socket = new Socket();
socket.connect("127.0.0.1",80);
socket.addEventListener(Event.COMPLETE, Connected);
function Connected(e:Event):void
{
//Уведомляем
trace('Подключили сокет!');
//Если сервер что то хочет сказать запускаем функцию accept
socket.addEventListener(ProgressEvent.SOCKET_DATA, Accept);
//А если ошибки где-то их тоже не скрываем
socket.addEventListener(IOErrorEvent.IO_ERROR, ShowError);
}
function Accept(e: ProgressEvent):void
{
//Уведомляем
trace('Сервер хочет что-то сказать');
//Показываем серверное сообщение
answerServer.text = socket.readUTFBytes(12);
}
А если я хочу например отправить сообщение попозже, реал тайм же всё таки хочу.
Например так (в самом деле тут будет например проверка новых записей в бд или ещё где нибудь)
PHP:
if(date("i") > 20)
{
пишем в сокет...
}