MQTTNET-为.NET 6最小API创建服务
有人可以提供示例代码来创建.NET 6.0中API控制器使用的可注射的MQTTNET服务吗?我已经做了这样的事情:
MqttClientOptionsBuilder mqbuilder = new MqttClientOptionsBuilder()
.WithClientId("VTSCMgmntC")
.WithTcpServer("192.168.1.75", 1883);
ManagedMqttClientOptions mqoptions = new ManagedMqttClientOptionsBuilder()
.WithAutoReconnectDelay(TimeSpan.FromSeconds(60))
.WithClientOptions(mqbuilder.Build())
.Build();
builder.Services.AddSingleton<IManagedMqttClient>(new MqttFactory().CreateManagedMqttClient());
在控制器方面,我有:
private readonly VTSCMContext _context;
private readonly IManagedMqttClient _mqttclient;
public VTSCMgmtController(VTSCMContext context, IManagedMqttClient mqttclient)
{
_context = context;
_mqttclient = mqttclient;
}
[HttpGet]
public void pubtest()
{
_mqttclient.PublishAsync("test");
}
显然什么都没有出版。
Could anybody provide example code to create injectable MQTTnet service to be used by API Controller in .net 6.0? I've done something like this:
MqttClientOptionsBuilder mqbuilder = new MqttClientOptionsBuilder()
.WithClientId("VTSCMgmntC")
.WithTcpServer("192.168.1.75", 1883);
ManagedMqttClientOptions mqoptions = new ManagedMqttClientOptionsBuilder()
.WithAutoReconnectDelay(TimeSpan.FromSeconds(60))
.WithClientOptions(mqbuilder.Build())
.Build();
builder.Services.AddSingleton<IManagedMqttClient>(new MqttFactory().CreateManagedMqttClient());
and on the controller side, I've got:
private readonly VTSCMContext _context;
private readonly IManagedMqttClient _mqttclient;
public VTSCMgmtController(VTSCMContext context, IManagedMqttClient mqttclient)
{
_context = context;
_mqttclient = mqttclient;
}
[HttpGet]
public void pubtest()
{
_mqttclient.PublishAsync("test");
}
Obviously nothing gets published at all....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
添加用于将来参考的代码:
Adding the code that worked for future reference: