Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.06.2010, 17:22
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 1  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
Question Рассылка оповещений всем пользователям

Добрый день.

Был бы благодарен, если бы более опытные в разработке приложений для Вконтакте пользователи, подсказали, как они организуют рассылку оповещений всем пользователям их приложений (метод secure.sendNotification).

В частности, интересует вопрос с ограничением в количество запросов в секунду. Как вы его обходите? Создаёте задержку в .php скрипте с помощью метода sleep(), или как-то иначе?

Буду благодарен за помощь, так как сейчас упёрся в ошибку при попытке отправки оповещения всем пользователям моего приложения.

Старый 13.06.2010, 23:16
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Собственно, можно поставить set_time_limit в ноль и слать по 100 человек раз в полсекунды.

Старый 13.06.2010, 23:16
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
я использую не sleep, а usleep
если точнее usleep (300000)

Старый 14.06.2010, 00:12
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 4  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
2 etc:
Если я правильно понял, то вы всё равно используете sleep для организации задержки перед отправкой запросов. Просто я не очень разбираюсь в PHP и организация задержки через sleep —*это первое решение, которое я нашёл.

Старый 14.06.2010, 00:21
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 5  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
sleep дает задержку с точностью до секунды

Старый 14.06.2010, 15:18
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 6  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
mikhailk, я в отчаянии Не каких инструкций да же не жду! Я бы хотел просто увидеть работающий скрипт (php). В том примере, я заметил две функции, одна запустить другую, а первую кто запустит?? Моей проблемой является передача переменных прямо с php на сервер и обратно в php...

Старый 14.06.2010, 16:42
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
koIIImarik, думаю, модераторы при необходимости меня поправят.

deman455, так у Вас ничего не получится.
Непосредственно функция php, которая произведет рассылку, вот:

Код:
function sendMessageToListUser($listUser,$message) {

	$randomNumber = rand(10000,1000000);
	$timestamp = time();
	$signatureForMD5 = "api_id=" . CONST_AppId
					. "message=" . $message
					. "method=secure.sendNotification" 
					. "random=" . $randomNumber
					. "timestamp=" . $timestamp
					. "uids=" . $listUser
					. "v=2.0"
					. CONST_AppSecCode;

	$sig = md5($signatureForMD5);

	$request = "http://api.vkontakte.ru/api.php?" 
					. "api_id=" . CONST_AppId
					. "&message=" . urlencode($message)
					. "&method=secure.sendNotification"
					. "&random=" . $randomNumber
					. "&sig=" . $sig
					. "&timestamp=" . $timestamp
					. "&uids=" . $listUser
					. "&v=2.0"
					;
		
	siteConnector($request);

}

function siteConnector($request) {
	// инициализация сеанса
	$ch = curl_init($request);

	// установка URL и других необходимых параметров
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

	// загрузка страницы
	$responseRequest =  curl_exec($ch);

	// завершение сеанса и освобождение ресурсов
	curl_close($ch);
	
}

Для того, чтобы произвести рассылку, Вам нужно сделать php-скрипт, который с интервалом (у меня usleep(300000) ) обращается к ВАШЕЙ СОБСТВЕННОЙ базе пользователей, формирует списки рассылки по 100 id и затем вызывает указанную мною функцию sendMessageToListUser. Очевидно, сам этот скрипт должен вызываться из формы, в которой администратор вводит текст для рассылки, а сверху на все это нужно поставить механизм авторизации, чтобы кто попало не смог рассылать сообщения от имени вашего приложения.

У Вас есть собственная база пользователей?

Если есть, значит Вы знаете, как сделать то, что я написал.
Если нет, то и говорить нечего. Нет базы - нет рассылки.


Последний раз редактировалось mikhailk; 14.06.2010 в 16:45.
Старый 14.06.2010, 17:21
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 8  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
2 mikhailk:
Подскажите, пожалуйста, сколько, примерно, по времени, у вас обрабатывается отправка оповещений, допустим, 4000 пользователям? Меня волнует время работы скрипта, по моим наблюдениям на моём VPS (1200 MB RAM, 3000 Mhz CPU) рассылка оповещений 4000 пользователям выполняется за 15-20 минут. Я раньше даже думал, что завис скрипт, но один раз решил принципиально не выключать и увидел, что всё отослалось.

Старый 14.06.2010, 17:28
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 9  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
mikhailk, не много не понял кому вы задаете вопрос снизу (в самом низу)? Конечно база пользователей у меня есть на сервере. Но мне то не рассылка надо.
Этот php скрипт выводит результат от запроса в контакта? Этот скрипт у меня на сервере не работает. Страница просто зависает в состоянии загрузки, и все...

Добавлено через 2 минуты
koIIImarik, на VPS у вас сокет сервер? На VPS сервере возможно как то задействовать php скрипт? Просто как мне известно VPS это тот же компьютер, только арендованный.

Старый 14.06.2010, 18:26
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 10  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
2 deman455:
VPS - это сервер (читай хостинг), который можно настраивать по своему усмотрению. на моём VPS установлен Apache2 + MySQL + PHP, поэтому PHP скрипты можно запускать.

Если говорить конкретно о скрипте рассылки оповещений, я обращаюсь к данному скрипту из браузера. В будущем, если получится снизить время выполнения скрипта, планирую вызывать нужную функцию из своей Flash админки через AMF протокол.

Выше вы описали ситуацию, когда у вас скрипт «подвисает» на стадии «загрузки», это очень похоже на то, что было у меня, я тоже думал, что он у меня просто виснет, пока один раз принципиально не оставил его выполняться. Выполнение данного скрипта с примерно 4000 пользователями завершилось, примерно, через 15-20 минут.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
вконтакте , Задержка , Оповещения , Таймер

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.