Передайте дополнительные параметры в функцию обратного вызова UDP $server->on().Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Передайте дополнительные параметры в функцию обратного вызова UDP $server->on().

Сообщение Anonymous »

У меня есть существующий PHP-процесс, который получает данные через UDP, а затем отправляет эти данные в Beanstalk (beanstalkd, а не в AWS Elastic Beanstalk). Затем другой процесс извлекает эти данные из beanstalk (beanstalk действует как буфер, поскольку скорость сообщений UDP варьируется в широких пределах) и обрабатывает их перед отправкой в ​​Redis.
Я пытаюсь ускорить работу процесс, портируя его на OpenSwoole, и я провел большую часть сегодняшнего дня, пытаясь разобраться в этом, но мне очень трудно разобраться в документах, поскольку нет никаких примеров, похожих на мой вариант использования.
Я использую библиотеку beanstalkd, совместимую с OpenSwoole:
https://github.com/xpader/swbeanstalk/blob/master/ example/test.php
со строкой $scheduler->add('coJobProducer'); закомментировали и добавили следующий код:

Код: Выделить всё

// Start a new UDP server on 12.0.0.1, listening on port 9502
$server = new OpenSwoole\Server('127.0.0.1', 9502, OpenSwoole\Server::POOL_MODE, OpenSwoole\Constant::SOCK_UDP);

// Get connection to beanstalk
$client = getConnection();
$client->useTube('test');

// Setup the incoming data event callback, called 'Packet'
$server->on('Packet', function ($server, $data, $clientInfo) {
global $client;
$ret = $client->put($data);
});

// Start the server and begin accepting incoming requests
$server->start();
Можно ли передать дополнительные параметры в функцию $server->on(). Если да, то как? Я пробовал добавить $client в список параметров функции, а также объявить его глобальным (ухх!), но теперь у меня закончились идеи...
В идеале я Мне хотелось бы расширить функцию обратного вызова $server->on(), чтобы она выполняла больше обработки, но для этого мне нужно передать довольно много экземпляров классов, переменных и т. д.

Подробнее здесь: https://stackoverflow.com/questions/789 ... k-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»