Comments (10)
Currently this feature is missing, i will look to implement this ! :)
from websocketbundle.
I can try and implement it and send you a pull request if you'd like. I would need more details on how it's going to work, though.
Possibilities could be a configuration value called zmq_host
and zmq_port
, and when these are required, the command creates a React\ZMQ
instance and passes that to the server. On the other end, you'd need to have TopicWithMessageInterface
that also has an onMessage()
function added to those defined by TopicInterface
.
There could then be a zmq_client
service defined in the dependency injection container that is the result of calling getSocket()
with ZMQ::SOCKET_PUSH
which users can then use to push messages onto the queue.
All of this will make your library dependent on ext_zmq
, though.
from websocketbundle.
I appreciate thank you ;)
Keep in your head that feature must be togglable in order to run this bundle when ZMQ is not installed and not needed. Like ratchet approach no composer require just a good docs about to explain how implements push integration
from websocketbundle.
Hi,
Here is what I and my colleague have come up with. I'm double-checking with you to make sure it's what you want:
- We will add a
zmq_server
key to the configuration. It will havehost
andport
options only, and the values can also be overridden through parameters, just likehost
andport
for theserver
key. - We will add a second server called
ZMQServer
which implements theGos\Bundle\WebSocketBundle\Server\Type\ServerInterface
. Since we are not going to have origin checking, this service would acceptLoopInterface
,EventDispatcherInterface
,WampApplicationInterface
, andLoggerInterface
. - In the
launch
function, we build the stack, adding the ZMQ server to it, without periodic and origin checking. - We add a new command,
gos:zmq:server
, which gets this new server as itsentryPoint
and callslaunch()
on it.
Is this okay?
from websocketbundle.
Globally, yes.
Forget ZMQ when you code, use PUSH because ZMQ is only ONE technology to transport like AMQP/STOMP, websocket client, redis PUB/SUB for example.
zmq_server
becomepush_server
ZMQServer
becomePushServer
gos:zmq:server
becomegos:push:server
1
We will add a zmq_server key to the configuration. It will have host and port options only, and the values can also be overridden through parameters, just like host and port for the server key.
Add also a type to have :
push_server:
host: 12.0.0.1
port: 3349
type: zero_mq
2
Like I said before,
ZMQServer -> PushServer
ZMQ implementation -> ZmqTransport with common interface to have something like :
class PushServer
{
public function __construct(TransportInterface $transport)
{
//transport (zmq, websocket client etc we dont care of what is behind, that transport
transport)
}
}
4
We add a new command, gos:zmq:server, which gets this new server as its entryPoint and calls launch() on it.
Don't forget to allow to run command process with optional ip / port in order to load balance ;) (like websocket do today) and your static ip / port in config file point on load balancer.
What do you think about that ?
from websocketbundle.
I think I get most of what you mean. However, is there somewhere we can chat about this? I'd like to iron out some details?
from websocketbundle.
yes here : https://gitter.im/GeniusesOfSymfony/WebSocketBundle
from websocketbundle.
All right, I've joined.
from websocketbundle.
ref #39
from websocketbundle.
🎉
from websocketbundle.
Related Issues (20)
- Connection auto closes right after first incomming message HOT 1
- Suggestion: Native TLS support HOT 5
- The service ".service_locator.VS38E50" has a dependency on a non-existent service "Gos\Bundle\WebSocketBundle\Pusher\Wamp\WampPusher". HOT 5
- How define route with parameter?
- After upgrading Symfony from 5.3.0 to 5.3.13, gos:wsb gives error when client attempts to subscribe to channel HOT 4
- Push Notifications from Server HOT 1
- Error using PdoSessionHandler with symfony 6 - "VirtualSessionStorage::start() must be compatible.." HOT 3
- Session Problem PDO HOT 5
- Error installing the bundle: Undefined array key "port" HOT 2
- Uncaught ReferenceError: GosSocket is not defined HOT 2
- Please provide documentation for using the symfony messenger component as a pusher HOT 2
- Update to support modern Autobahn version. HOT 8
- New authentication flow using JWT HOT 9
- Subscribe to topic on server HOT 2
- Connection in IPV6 HOT 1
- TopicPeriodicTimer doesn't see new connections
- TopicPeriodicTimer only registered for one Topic, wrongly cleared if any one Topic has zero connections HOT 1
- How can I send a message HOT 2
- error while installing (In GosWebSocketExtension.php line 276 Notice: Undefined index: port)
- The "Gos\Bundle\WebSocketBundle\Pusher\PusherRegistry" class is deprecated and will be removed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from websocketbundle.