Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
IoTSharp
提交
41814620
I
IoTSharp
项目概览
jobily
/
IoTSharp
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
IoTSharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
41814620
编写于
5月 18, 2019
作者:
麦壳饼
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mqtt update to 3.0.2
上级
e4f6e523
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
44 addition
and
30 deletion
+44
-30
IoTSharp.Test/IoTSharp.Test.csproj
IoTSharp.Test/IoTSharp.Test.csproj
+1
-1
IoTSharp/Clients/RpcClient.cs
IoTSharp/Clients/RpcClient.cs
+3
-1
IoTSharp/Controllers/DevicesController.cs
IoTSharp/Controllers/DevicesController.cs
+1
-0
IoTSharp/Extensions/MqttExtension.cs
IoTSharp/Extensions/MqttExtension.cs
+11
-7
IoTSharp/Handlers/MqttEventsHandler.cs
IoTSharp/Handlers/MqttEventsHandler.cs
+5
-5
IoTSharp/IoTSharp.csproj
IoTSharp/IoTSharp.csproj
+10
-10
IoTSharp/Services/MqttClientService.cs
IoTSharp/Services/MqttClientService.cs
+13
-6
LICENSE.txt
LICENSE.txt
+0
-0
未找到文件。
IoTSharp.Test/IoTSharp.Test.csproj
浏览文件 @
41814620
...
...
@@ -9,7 +9,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.
0.1
" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.
1.0
" />
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
</ItemGroup>
...
...
IoTSharp/Clients/RpcClient.cs
浏览文件 @
41814620
using
MQTTnet
;
using
MQTTnet.Client
;
using
MQTTnet.Client.Options
;
using
MQTTnet.Client.Receiving
;
using
MQTTnet.Exceptions
;
using
MQTTnet.Protocol
;
using
System
;
...
...
@@ -25,7 +27,7 @@ namespace IoTSharp.Extensions
{
_mqttClient
=
mqttClient
??
throw
new
ArgumentNullException
(
nameof
(
mqttClient
));
_mqttClient
.
ApplicationMessageReceived
+=
OnApplicationMessageReceived
;
_mqttClient
.
ApplicationMessageReceived
Handler
=
new
MqttApplicationMessageReceivedHandlerDelegate
(
args
=>
OnApplicationMessageReceived
(
mqttClient
,
args
)
)
;
}
public
RpcClient
(
IMqttClientOptions
mqtt
):
this
(
new
MQTTnet
.
MqttFactory
().
CreateMqttClient
())
...
...
IoTSharp/Controllers/DevicesController.cs
浏览文件 @
41814620
...
...
@@ -15,6 +15,7 @@ using MQTTnet.Extensions.Rpc;
using
MQTTnet.Protocol
;
using
IoTSharp.Extensions
;
using
MQTTnet.Exceptions
;
using
MQTTnet.Client.Options
;
namespace
IoTSharp.Controllers
{
...
...
IoTSharp/Extensions/MqttExtension.cs
浏览文件 @
41814620
...
...
@@ -11,6 +11,9 @@ using MQTTnet.Diagnostics;
using
MQTTnet.AspNetCoreEx
;
using
IoTSharp.Handlers
;
using
IoTSharp.Services
;
using
MQTTnet.Server
;
using
MQTTnet.Client.Receiving
;
using
MQTTnet.Client.Options
;
namespace
IoTSharp
{
...
...
@@ -50,13 +53,14 @@ namespace IoTSharp
var
mqttEvents
=
app
.
ApplicationServices
.
CreateScope
().
ServiceProvider
.
GetService
<
MqttEventsHandler
>();
app
.
UseMqttServerEx
(
server
=>
{
server
.
ClientConnected
+=
mqttEvents
.
Server_ClientConnected
;
server
.
Started
+=
mqttEvents
.
Server_Started
;
server
.
Stopped
+=
mqttEvents
.
Server_Stopped
;
server
.
ApplicationMessageReceived
+=
mqttEvents
.
Server_ApplicationMessageReceived
;
server
.
ClientSubscribedTopic
+=
mqttEvents
.
Server_ClientSubscribedTopic
;
server
.
ClientUnsubscribedTopic
+=
mqttEvents
.
Server_ClientUnsubscribedTopic
;
server
.
ClientConnectionValidator
+=
mqttEvents
.
Server_ClientConnectionValidator
;
server
.
ClientConnectedHandler
=
new
MqttServerClientConnectedHandlerDelegate
(
args
=>
mqttEvents
.
Server_ClientConnected
(
server
,
args
));
server
.
StartedHandler
=
new
MqttServerStartedHandlerDelegate
(
args
=>
mqttEvents
.
Server_Started
(
server
,
args
));
server
.
StoppedHandler
=
new
MqttServerStoppedHandlerDelegate
(
args
=>
mqttEvents
.
Server_Stopped
(
server
,
args
));
server
.
ApplicationMessageReceivedHandler
=
new
MqttApplicationMessageReceivedHandlerDelegate
(
args
=>
mqttEvents
.
Server_ApplicationMessageReceived
(
server
,
args
));
server
.
ClientSubscribedTopicHandler
=
new
MqttServerClientSubscribedHandlerDelegate
(
args
=>
mqttEvents
.
Server_ClientSubscribedTopic
(
server
,
args
));
server
.
ClientUnsubscribedTopicHandler
=
new
MqttServerClientUnsubscribedTopicHandlerDelegate
(
args
=>
mqttEvents
.
Server_ClientUnsubscribedTopic
(
server
,
args
));
server
.
ClientConnectionValidatorHandler
=
new
MqttServerClientConnectionValidatorHandlerDelegate
(
args
=>
mqttEvents
.
Server_ClientConnectionValidator
(
server
,
args
));
});
var
mqttNetLogger
=
app
.
ApplicationServices
.
GetService
<
IMqttNetLogger
>();
...
...
IoTSharp/Handlers/MqttEventsHandler.cs
浏览文件 @
41814620
...
...
@@ -28,7 +28,7 @@ namespace IoTSharp.Handlers
}
static
long
clients
=
0
;
internal
void
Server_ClientConnected
(
object
sender
,
MqttClientConnectedEventArgs
e
)
internal
void
Server_ClientConnected
(
object
sender
,
Mqtt
Server
ClientConnectedEventArgs
e
)
{
_logger
.
LogInformation
(
$"Client [
{
e
.
ClientId
}
] connected"
);
clients
++;
...
...
@@ -63,7 +63,7 @@ namespace IoTSharp.Handlers
received
+=
e
.
ApplicationMessage
.
Payload
.
Length
;
}
long
Subscribed
;
internal
void
Server_ClientSubscribedTopic
(
object
sender
,
Mqtt
ClientSubscribedTopicEventArgs
e
)
internal
void
Server_ClientSubscribedTopic
(
object
sender
,
Mqtt
ServerClientSubscribedTopicEventArgs
e
)
{
_logger
.
LogInformation
(
$"Client [
{
e
.
ClientId
}
] subscribed [
{
e
.
TopicFilter
}
]"
);
if
(
e
.
TopicFilter
.
Topic
.
StartsWith
(
"$SYS/"
))
...
...
@@ -71,7 +71,7 @@ namespace IoTSharp.Handlers
if
(
e
.
TopicFilter
.
Topic
.
StartsWith
(
"$SYS/broker/version"
))
{
var
mename
=
typeof
(
MqttEventsHandler
).
Assembly
.
GetName
();
var
mqttnet
=
typeof
(
MqttClientSubscribedTopicEventArgs
).
Assembly
.
GetName
();
var
mqttnet
=
typeof
(
Mqtt
Server
ClientSubscribedTopicEventArgs
).
Assembly
.
GetName
();
Task
.
Run
(()
=>
_serverEx
.
PublishAsync
(
"$SYS/broker/version"
,
$"
{
mename
.
Name
}
V
{
mename
.
Version
.
ToString
()}
,
{
mqttnet
.
Name
}
.
{
mqttnet
.
Version
.
ToString
()}
"
));
}
else
if
(
e
.
TopicFilter
.
Topic
.
StartsWith
(
"$SYS/broker/uptime"
))
...
...
@@ -96,7 +96,7 @@ namespace IoTSharp.Handlers
}
internal
void
Server_ClientUnsubscribedTopic
(
object
sender
,
Mqtt
ClientUnsubscribedTopicEventArgs
e
)
internal
void
Server_ClientUnsubscribedTopic
(
object
sender
,
Mqtt
ServerClientUnsubscribedTopicEventArgs
e
)
{
_logger
.
LogInformation
(
$"Client [
{
e
.
ClientId
}
] unsubscribed[
{
e
.
TopicFilter
}
]"
);
if
(!
e
.
TopicFilter
.
StartsWith
(
"$SYS/"
))
...
...
@@ -107,7 +107,7 @@ namespace IoTSharp.Handlers
}
internal
static
Dictionary
<
string
,
Device
>
Devices
=
new
Dictionary
<
string
,
Device
>();
public
static
string
MD5Sum
(
string
text
)
=>
BitConverter
.
ToString
(
MD5
.
Create
().
ComputeHash
(
Encoding
.
UTF8
.
GetBytes
(
text
))).
Replace
(
"-"
,
""
);
internal
void
Server_ClientConnectionValidator
(
object
sender
,
Mqtt
ClientConnectionValidatorEventArgs
e
)
internal
void
Server_ClientConnectionValidator
(
object
sender
,
Mqtt
ServerClientConnectionValidatorEventArgs
e
)
{
MqttConnectionValidatorContext
obj
=
e
.
Context
;
Uri
uri
=
new
Uri
(
"mqtt://"
+
obj
.
Endpoint
);
...
...
IoTSharp/IoTSharp.csproj
浏览文件 @
41814620
...
...
@@ -45,7 +45,7 @@
<RpmDependency Include="libicu" Version="50.1.2" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Packaging.Targets" Version="0.1.7
0
" />
<PackageReference Include="Packaging.Targets" Version="0.1.7
8
" />
<DotNetCliToolReference Include="dotnet-tarball" Version="0.1.70" />
<DotNetCliToolReference Include="dotnet-zip" Version="0.1.70" />
<DotNetCliToolReference Include="dotnet-rpm" Version="0.1.70" />
...
...
@@ -68,18 +68,18 @@
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.
3
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.
3
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.
3
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.
3
" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.
4
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.
4
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.
4
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.
4
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.6" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
<PackageReference Include="MQTTnet" Version="
2.8.5
" />
<PackageReference Include="MQTTnet.AspNetCore" Version="
2.8.5
" />
<PackageReference Include="MQTTnet.AspNetCoreEx" Version="
1.0.0
" />
<PackageReference Include="MQTTnet.Extensions.Rpc" Version="
2.8.5
" />
<PackageReference Include="MQTTnet" Version="
3.0.2
" />
<PackageReference Include="MQTTnet.AspNetCore" Version="
3.0.2
" />
<PackageReference Include="MQTTnet.AspNetCoreEx" Version="
3.0.2
" />
<PackageReference Include="MQTTnet.Extensions.Rpc" Version="
3.0.2
" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.0" />
<PackageReference Include="NSwag.AspNetCore" Version="12.
0.20
" />
<PackageReference Include="NSwag.AspNetCore" Version="12.
2.5
" />
<PackageReference Include="QuartzHostedService" Version="0.0.4" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.1" />
</ItemGroup>
...
...
IoTSharp/Services/MqttClientService.cs
浏览文件 @
41814620
...
...
@@ -8,6 +8,11 @@ using Microsoft.Extensions.Hosting;
using
Microsoft.Extensions.Logging
;
using
MQTTnet
;
using
MQTTnet.Client
;
using
MQTTnet.Client.Connecting
;
using
MQTTnet.Client.Disconnecting
;
using
MQTTnet.Client.Options
;
using
MQTTnet.Client.Receiving
;
using
MQTTnet.Server
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
...
...
@@ -28,9 +33,9 @@ namespace IoTSharp.Services
_logger
=
logger
;
_mqtt
=
mqtt
;
_clientOptions
=
clientOptions
;
mqtt
.
ApplicationMessageReceived
+=
Mqtt_ApplicationMessageReceived
;
mqtt
.
Connected
+=
Mqtt_Connected
;
mqtt
.
Disconnected
+=
Mqtt_DisconnectedAsync
;
mqtt
.
ApplicationMessageReceived
Handler
=
new
MqttApplicationMessageReceivedHandlerDelegate
(
args
=>
Mqtt_ApplicationMessageReceived
(
mqtt
,
args
))
;
mqtt
.
Connected
Handler
=
new
MqttClientConnectedHandlerDelegate
(
args
=>
Mqtt_ConnectedAsync
(
mqtt
,
args
))
;
mqtt
.
Disconnected
Handler
=
new
MqttClientDisconnectedHandlerDelegate
(
args
=>
Mqtt_DisconnectedAsync
(
mqtt
,
args
))
;
_serviceScope
=
scopeFactor
.
CreateScope
();
_dbContext
=
_serviceScope
.
ServiceProvider
.
GetRequiredService
<
ApplicationDbContext
>();
}
...
...
@@ -49,9 +54,11 @@ namespace IoTSharp.Services
}
}
private
void
Mqtt_Connected
(
object
sender
,
MqttClientConnectedEventArgs
e
)
private
async
void
Mqtt_ConnectedAsync
(
object
sender
,
MqttClientConnectedEventArgs
e
)
{
_logger
.
LogInformation
(
$"CONNECTED IsSessionPresent:
{
e
.
IsSessionPresent
}
"
);
_logger
.
LogInformation
(
$"CONNECTED IsSessionPresent:
{
e
.
AuthenticateResult
.
IsSessionPresent
}
ResultCode:
{
e
.
AuthenticateResult
.
ResultCode
}
"
);
var
subresult1
=
await
_mqtt
.
SubscribeAsync
(
"/devices/telemetry/#"
);
var
subresult2
=
await
_mqtt
.
SubscribeAsync
(
"/devices/attributes/#"
);
}
Dictionary
<
string
,
Device
>
Devices
=>
MqttEventsHandler
.
Devices
;
...
...
@@ -120,7 +127,7 @@ namespace IoTSharp.Services
public
Task
StopAsync
(
CancellationToken
cancellationToken
)
{
_mqtt
.
Disconnected
-=
Mqtt_DisconnectedAsync
;
_mqtt
.
Disconnected
Handler
=
null
;
return
_mqtt
.
DisconnectAsync
();
}
}
...
...
LICENSE
→
LICENSE
.txt
浏览文件 @
41814620
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录