minion icon indicating copy to clipboard operation
minion copied to clipboard

Push support

Open CupOfTea696 opened this issue 11 years ago • 5 comments

Is there any way to push a message to the client from another script? If there is, could you update the readme with an example? Thanks!

CupOfTea696 avatar Mar 19 '15 20:03 CupOfTea696

@CupOfTea696 What do you mean by another script? Something from Javascript for example?

Mulkave avatar Nov 11 '16 10:11 Mulkave

@Mulkave no I mean from another php script. Like, minion is running as a Websocket Server, and somewhere else on your application an http request gets made that triggers an action (like creating a news item), is it possible to push a message to the Websocket Server from that script?

  • User A is online, connected to WS server
  • User B posts a news item
  • PHP notifies WS server news item was created (push)
  • WS server notifies user A a new news item is available.

CupOfTea696 avatar Nov 11 '16 10:11 CupOfTea696

definitely. It has to do with the channel that you're connecting to. Basically when user A is online, they should register to the messages that are expected to be published by the provider as in this example https://github.com/Vinelab/minion#provider-classes.

Or did I misunderstood your example?

Mulkave avatar Dec 21 '16 19:12 Mulkave

I think you did, yes. In this case, User B is not connected to the Websocket Server. So from my backend PHP code, after creating the News item, can I then send a message to the running Minion instance from my PHP code?

Basically I'm trying to do something like this example.

CupOfTea696 avatar Dec 22 '16 16:12 CupOfTea696

Pretty late to the party...sorry. There is no simple answer to this question unfortunately. There are a ton of methods that you could use to do this. Here are a few:

  1. Your PHP script can create a Thruway client, or a minion client to connect to the same realm, and publish to a topic that the minion has subscribed to.
  2. Configure your WAMP Router (like Crossbar) to publish to a topic using HTTP requests and use an HTTP request to publish to a topic your minion is subscribed to.
  3. You can use a message or task queue like RabbitMQ or Beanstalkd which your minion will pull from.
  4. Your minion can open a file, or unix socket to read from which your PHP script will write to.
  5. The script can insert a row of data to a database which is queried by the minions.

NeoVance avatar Mar 30 '18 06:03 NeoVance