Mqttnet: Version 2.9.0 discussion thread

Created on 29 Jun 2018  路  6Comments  路  Source: chkr1011/MQTTnet

This ticket is used to share ideas etc. for the next version 2.9.0.

My plans are:

  • First MQTT 5.0 features (package bytes)
  • Allow injection of session managers
  • Performance optimizations in topic checks (server)
  • Performance optimizations in async/await (client)
  • Refactoring of TLS options (avoid "true, false, true, true, false, true" as parameters)
  • New "$SYS" extension library for the server
  • Add events for interceptors to allows chain of interceptors
  • Move keep alive checking in server to a new thread which does not use async/await.
  • ...
discussion

All 6 comments

im planning to also add websocket support via Microsoft.AspNetCore.Connections.Abstractions but that depends on the progress the signalr team, I hope that there is a 30 times improvement aswell.

there may also be some cleanup to be done if the client side connection story is implemented in aspnet.

and maybe some refactoring of the channel adapter api:
move connect and disconnect methods to a client specific interface and change the lifetime of a adapter so that it only exists as long as it is connected

perf: experiments with System.Text.Primitives:
https://github.com/dotnet/corefxlab/blob/887d983915d791a4e67fec42a8787ba7f8ccb775/src/System.Text.Primitives/System/Text/Encoders/Utf16.cs#L107
with this the serializers can be even more efficient, already tested that, now have to wait for the final version of that package

How about splitting into several nuget? One for server, client, and "shared/core"?

Could the server benefit from https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net/ ?

Could the server benefit from https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net/ ?

that s already implemented see aspnetcore 2.1 transport in wiki

@jenscski Splitting the nuget is not an option for now. We had this in the past (At least on project level, not for nugets) and it only made thinks more complicated. I don't see a benefit at the moment. The special implementations are already moved to "Extension" nugets and the main lib only contains the very basic client and server.

Please fix socket binding, or at least add this as an option; see my comment on #494

As the latest version is 3.0.3, I would like to close this @chkr1011.

Was this page helpful?
0 / 5 - 0 ratings