lpeterse / haskell-hummingbird Goto Github PK
View Code? Open in Web Editor NEWMulti-threaded MQTT broker written in Haskell.
License: MIT License
Multi-threaded MQTT broker written in Haskell.
License: MIT License
I try to run hummingbird for the first time:
$ sudo hummingbird broker
[2019-01-28 10:54:53 CET : hummingbird : INFO] Started hummingbird MQTT message broker.
[2019-01-28 10:54:53 CET : SimpleAuthenticator : INFO] Creating new SimpleAuthenticator.
[2019-01-28 10:54:53 CET : SimpleAuthenticator : INFO] Looking for principal definitions in "/etc/hummingbird/principals".
[2019-01-28 10:54:53 CET : SimpleAuthenticator : DEBUG] Inspecting path "/etc/hummingbird/principals".
[2019-01-28 10:54:53 CET : SimpleAuthenticator : DEBUG] Inspecting path "/etc/hummingbird/principals/mqtt-default.yml".
[2019-01-28 10:54:53 CET : SimpleAuthenticator : DEBUG] Loaded SimplePrincipalConfig {cfgUUID = e4f7f759-a7f0-4ae7-8140-766269e1c503, cfgUsername = Just (Username "mqtt-default"), cfgPasswordHash = Just "$2y$14$z1TeFmnk9zirP1Ml55lVyuOWOhaYyqlHlvd6meaze2KDYPH8hrdsS", cfgQuota = Nothing, cfgPermissions = fromList [("#",Identity [Publish,Subscribe,Retain])], cfgPubKeys = [PubKeyRSA (PublicKey {public_size = 256, public_n = 22308942959693450164805414784622039119953869676598494040490474876845113011423244363133504464639934332123824098648383695629950150740661240301797557789182881627518325410401761214390870746782142890256330810683259925120714609191450018846802295942368288474822201833573214569087558505560609454735289847189481477441119371414955982136284383371075357537016744791612856244809403031774668623777419463250379304610626415753799894380826997107551511307557394469393256023125370558067711177534861949701053775350975064219762470558885671887833718238237288150961742044857994737398622408909061802106648686005822374306713833889769779813399, public_e = 65537})]}
[2019-01-28 10:54:53 CET : SimpleAuthenticator : INFO] Found 1 principal definitions.
hummingbird: /run/hummingbird: getFileStatus: does not exist (No such file or directory)
Hello,
I would like to run a MQTT server with my own callbacks.
Is it possible with Hummingbird/haskell-mqtt?
Thanks
I'm trying to follow the README file, but this instruction is not clear:
mosquitto_pub -h localhost -p 8883 -V mqttv311 \
--cafile "resources/hummingbird_ca.crt" \
--cert "resources/mqtt-default.crt" \
--key "resources/mqtt-default.key" \
-t "abc/def" \
-m "asdasd"
Where does come from the files hummingbird_ca.crt
and mqtt-default.crt
? They are not in the repo and are not generated by the create-self-signed-cert.sh
script.
The retained messages shall not be stored in the broker instances itself, but this shall be handled by a separate hummingbird-retention
service.
Note to self: Users should have a way to find out who they are and what they are allowed to do (permissions and quotas etc.).
To match the requirements for shell usage the output should be refactored. E.g. the colored dots to indicate the session status are not very grepable.
aep@derp: ~/Downloads/haskell-hummingbird-0.4.2.0 docker build . -t humingbird
Sending build context to Docker daemon 159.7kB
Step 1/14 : FROM ubuntu:16.04
---> 747cb2d60bbe
Step 2/14 : MAINTAINER Lars Petersen <[email protected]>
---> Running in f5ad4deedb4a
Removing intermediate container f5ad4deedb4a
---> 7772596c02eb
Step 3/14 : RUN locale-gen en_US.UTF-8
---> Running in a50bdaf25e7b
/bin/sh: 1: locale-gen: not found
The command '/bin/sh -c locale-gen en_US.UTF-8' returned a non-zero code: 127
Make the settings path configurable and add default paths, eg /etc/hummingbird/settings.yml
and ./settings.yml
Hello,
I just installed the Debian distribution on my Ubuntu 16.04:
sudo dpkg -i hummingbird_0.8.1.0-1_amd64.deb
sudo cp /usr/share/hummingbird/resources/principals/mqtt-default.yml /etc/hummingbird/principals/
sudo hummingbird pwhash
But nothing happens next. It hangs on the last command forever.
A feature would be nice, breaking with the mqtt-spec though, which allows to set a config option on user base which enables distinct message routing per topic to multiple connected sessions with the same user.
If this is not being rejected directly, I will elaborate the idea.
stream cli responses instead of transmitting en bloc. For example with 20.000 connected clients one probably wants to transmit these, at least, chunked. This would result in less waiting time for the first results and one could cancel the request intermediate.
It shall be possible to create a cluster of several broker instances in order to have high-availability.
As a first shot, here's the plan:
It is highly desirable that it does not matter which broker instance a client connects to. Here's the second step:
I noticed this when writing a systemd unit file. Setting Killmode=SIGINT
solves the issue, but seems awkward.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.