Vinelab / minion

A Simplified Client for WAMP v2 (Web Application Messaging Protocol) with command line support - PHP WebSocket Made Easy
MIT License
126 stars 16 forks source link

Push support #4

Open CupOfTea696 opened 9 years ago

CupOfTea696 commented 9 years ago

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!

Mulkave commented 7 years ago

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

CupOfTea696 commented 7 years ago

@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?

Mulkave commented 7 years ago

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?

CupOfTea696 commented 7 years ago

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.

NeoVance commented 6 years ago

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.