All Projects → alekitto → messenger-extra

alekitto / messenger-extra

Licence: MIT license
Additional transports and serializer support for symfony messenger

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to messenger-extra

Messenger
The Messenger component helps application send and receive messages to/from other applications or via message queues.
Stars: ✭ 603 (+2915%)
Mutual labels:  queue, messenger
flask-restful-api-boilerplate
This is boilerplate template for a Python Flask application with things you need to get started.
Stars: ✭ 14 (-30%)
Mutual labels:  queue
Tutorial-Echobot
Un Bot de Facebook Messenger que te responde lo que tú escribiste.
Stars: ✭ 25 (+25%)
Mutual labels:  messenger
les-chat
Real-time messenger with private, public & group chat. Made using PERN + GraphQL stack.
Stars: ✭ 48 (+140%)
Mutual labels:  messenger
messenger-to-telegram
Connect your Facebook Messenger Account to your Telegram Messenger and Erase the Messenger App
Stars: ✭ 63 (+215%)
Mutual labels:  messenger
queue-for-kirby
Basic queue for Kirby 2, using Cron and Kirby's flat file system
Stars: ✭ 17 (-15%)
Mutual labels:  queue
netbout
Private talks made easy
Stars: ✭ 40 (+100%)
Mutual labels:  messenger
fluffychat
+++++Moved to GitLab+++++
Stars: ✭ 47 (+135%)
Mutual labels:  messenger
public
util toolkit for go.golang 通用函数包
Stars: ✭ 135 (+575%)
Mutual labels:  queue
mandarin-android
🍊 Android mobile IM client
Stars: ✭ 26 (+30%)
Mutual labels:  messenger
hatrack
Fast, multi-reader, multi-writer, lockless data structures for parallel programming
Stars: ✭ 55 (+175%)
Mutual labels:  queue
ke
Fast implementation of queue in OCaml
Stars: ✭ 42 (+110%)
Mutual labels:  queue
myleetcode
♨️ Detailed Java & Python solution of LeetCode.
Stars: ✭ 34 (+70%)
Mutual labels:  queue
emitter-queue
😴 Queue emitter events
Stars: ✭ 16 (-20%)
Mutual labels:  queue
cli-messenger
A cli tool for owning your chats
Stars: ✭ 29 (+45%)
Mutual labels:  messenger
Messaging-Services-Comparison
A comparison of messaging services and protocols.
Stars: ✭ 59 (+195%)
Mutual labels:  messenger
teamgram-server
Unofficial open source mtproto server written in golang with compatible telegram client.
Stars: ✭ 910 (+4450%)
Mutual labels:  messenger
InterviewBit
Collection of solution for problems on InterviewBit
Stars: ✭ 77 (+285%)
Mutual labels:  queue
go-messenger-demo
Demo Messenger Application
Stars: ✭ 18 (-10%)
Mutual labels:  messenger
AlgoDaily
just for fun
Stars: ✭ 118 (+490%)
Mutual labels:  queue

Messenger Extra

Tests

This library provides additional transports (and other things) for the symfony messenger component.

Install

composer require kcs/messenger-extra

Transports

Doctrine DBAL

A transport using doctrine DBAL can be used through the DbalTransportFactory.

Supports delayed, prioritized, expiring (TTL) and unique messages.

The dsn supports the following schemes:

  • db2
  • mssql
  • mysql
  • mysql2
  • postgres
  • postgresql
  • pgsql
  • sqlite
  • sqlite3

Doctrine ORM

An existing ORM connection can be used with doctrine scheme.

For example doctrine://default/queue will use the default doctrine connection with the queue table.

The doctrine scheme will also register a postGenerateSchema event listener that will create the correct table during a schema update (or migration if using DoctrineMigrations)

Mongo

Transport using MongoDB PHP client as transport.

Supports delayed, prioritized, expiring (TTL) and unique messages.

Use DSN with mongodb scheme with /database/collection path (database default and queue collection are used if not specified).

Mongodb authentication

For authenticated database, with user configured per database, you could specify authSource option in DSN query string:

mongodb://user:pass@server:port/database?authSource=database

⚠️ NOTE that if a username is passed in DSN the authSource connection option is already added to the mongo uri when passing to the client library. Its value is equal to the database selected (default if missing).

ℹ️ For information about the supported options in mongo DSN you can check the official documentation page on PHP.net

Null

Useful for testing environments, where no message should be dispatched.

Messages utilities

DelayedMessageInterface

Allows to specify a message delay. Implement this in your message class to delay the delivery of your message.

TTLAwareMessageInterface

Allows the expiration of a message. Implement this interface if you want your message to expire after a given amount of time.

UniqueMessageInterface

Adds a message only once in the queue. If another message with the same uniqueness key is present, the message is discarded.

Compatibility

Version Compatible Symfony Version Build Status
>= 2.2.0 ^4.4, ^5.0 Tests
2.0, 2.1 ^4.3, ^5.0 Not available
1.x 4.2.* Not available

Symfony bundle

A symfony bundle is included in the code under /lib: Use MessengerExtraBundle to fully integrate this library into your symfony application. Just add this to bundles.php:

    Kcs\MessengerExtra\MessengerExtraBundle::class => ['all' => true],

Available transports and functionalities will be registered automatically.


Amazing things will come shortly.

License & Contribute

This library is released under MIT license.

Feel free to open an issue or a PR on GitHub. If you want to contribute to this project, you're welcome!

A.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].