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
@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.
run it from cli, your not meant to init it from the browser.
– Lawrence Cherone
Sep 4 '18 at 16:32