ReactPHP blocking process in wordpress plugin

ReactPHP blocking process in wordpress plugin



i am trying to make a websocket server in my wordpress plugin.



when i try to access the site it loads alot of time and outputs this iis error:



The FastCGI process exceeded configured request timeout



websocket server code:


$loop = ReactEventLoopFactory::create();
$socket = new ReactSocketServer('127.0.0.1:9000', $loop);

$socket->on('connection', function (ConnectionInterface $conn)
$conn->write("Hello " . $conn->getRemoteAddress() . "!n");

$conn->on('data', function ($data) use ($conn)
$conn->close();
);
);

$loop->run();



when i remove this code ^ it load fast and no error.



versions:


PHP: 7.2
ReactPHP: ^1.0
Wordpress: 4.9.2





run it from cli, your not meant to init it from the browser.
– Lawrence Cherone
Sep 4 '18 at 16:32





@LawrenceCherone or everyone - is there a way to run it from wordpress?
– LightX
Sep 4 '18 at 17:01





its possible but you would need to track whether an instance is already running, then you just need to fire off an ajax request to start it, then close the connection, and then hopefully not open the client socket connection till its started.. much more hassle then simply running from cli.
– Lawrence Cherone
Sep 4 '18 at 17:05





1 Answer
1



Hey ReactPHP core maintainer here. Running any socket server including a websocket server is intended to run from the CLI or using supervisor/systemd. My suggestion would be to create such a special cli command in your plugin that you can call to start it. Doing funky magic with XHR requests is very error prone and not very stable. Alternatively if you absolutely cannot run cli commands is a service like pusher





For websockets my go to resource is Ratchet: github.com/ratchetphp/Ratchet
– WyriHaximus
Sep 4 '18 at 17:27





is it possible to forward all requests to another remote websocket server?
– LightX
Sep 4 '18 at 17:41





You can in fact connect to any websocket server that allows you to connect to it. For exampole you can connect from lightx.net to wyrihaximus.net if my server allows it through headers and authentication.
– WyriHaximus
Sep 4 '18 at 17:55





Connect to wss://www.wyrihaximus.net/ from the browser side :P
– WyriHaximus
Sep 4 '18 at 18:13


wss://www.wyrihaximus.net/





is it possible to set a custom events in RatchetPHP server?
– LightX
Sep 5 '18 at 13:20



Thanks for contributing an answer to Stack Overflow!



But avoid



To learn more, see our tips on writing great answers.



Some of your past answers have not been well-received, and you're in danger of being blocked from answering.



Please pay close attention to the following guidance:



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)