Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rudern
物联大师
提交
38efe89d
物
物联大师
项目概览
rudern
/
物联大师
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
物
物联大师
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
38efe89d
编写于
9月 30, 2020
作者:
J
Jason
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小修改
上级
f6e7e623
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
58 addition
and
45 deletion
+58
-45
internal/core/channel.go
internal/core/channel.go
+13
-7
internal/core/link.go
internal/core/link.go
+13
-18
internal/types/channel.go
internal/types/channel.go
+32
-0
internal/types/link.go
internal/types/link.go
+0
-20
未找到文件。
internal/core/channel.go
浏览文件 @
38efe89d
...
...
@@ -20,7 +20,10 @@ func NewChannel(channel *types.Channel) (Channel, error) {
if
channel
.
Role
==
"client"
{
return
&
Client
{
baseChannel
:
baseChannel
{
Channel
:
*
channel
,
ChannelExt
:
types
.
ChannelExt
{
Channel
:
*
channel
,
Online
:
true
,
},
},
},
nil
}
else
if
channel
.
Role
==
"server"
{
...
...
@@ -28,13 +31,19 @@ func NewChannel(channel *types.Channel) (Channel, error) {
case
"tcp"
,
"tcp4"
,
"tcp6"
,
"unix"
:
return
&
Server
{
baseChannel
:
baseChannel
{
Channel
:
*
channel
,
ChannelExt
:
types
.
ChannelExt
{
Channel
:
*
channel
,
Online
:
true
,
},
},
},
nil
case
"udp"
,
"udp4"
,
"udp6"
,
"unixgram"
:
return
&
PacketServer
{
baseChannel
:
baseChannel
{
Channel
:
*
channel
,
ChannelExt
:
types
.
ChannelExt
{
Channel
:
*
channel
,
Online
:
true
,
},
},
},
nil
default
:
...
...
@@ -46,12 +55,9 @@ func NewChannel(channel *types.Channel) (Channel, error) {
}
type
baseChannel
struct
{
types
.
Channel
types
.
Channel
Ext
clients
sync
.
Map
Rx
int
`json:"rx"`
Tx
int
`json:"tx"`
}
func
(
c
*
baseChannel
)
GetChannel
()
*
types
.
Channel
{
...
...
internal/core/link.go
浏览文件 @
38efe89d
...
...
@@ -13,10 +13,7 @@ import (
)
type
Link
struct
{
types
.
Link
Rx
int
Tx
int
types
.
LinkExt
//设备连接
conn
net
.
Conn
...
...
@@ -116,14 +113,13 @@ func (l *Link) storeError(err error) error {
func
newLink
(
ch
Channel
,
conn
net
.
Conn
)
*
Link
{
c
:=
ch
.
GetChannel
()
return
&
Link
{
Link
:
types
.
Link
{
Role
:
c
.
Role
,
Net
:
c
.
Net
,
Addr
:
conn
.
RemoteAddr
()
.
String
(),
ChannelId
:
c
.
Id
,
//PluginId: c.PluginId
,
Link
Ext
:
types
.
LinkExt
{
Link
:
types
.
Link
{
Net
:
c
.
Net
,
Addr
:
conn
.
RemoteAddr
()
.
String
(),
ChannelId
:
c
.
Id
,
}
,
Online
:
true
,
OnlineAt
:
time
.
Now
(),
},
conn
:
conn
,
cache
:
make
([][]
byte
,
0
),
...
...
@@ -133,14 +129,13 @@ func newLink(ch Channel, conn net.Conn) *Link {
func
newPacketLink
(
ch
Channel
,
conn
net
.
PacketConn
,
addr
net
.
Addr
)
*
Link
{
c
:=
ch
.
GetChannel
()
return
&
Link
{
Link
:
types
.
Link
{
Role
:
c
.
Role
,
Net
:
c
.
Net
,
Addr
:
addr
.
String
(),
ChannelId
:
c
.
Id
,
//PluginId: c.PluginId
,
Link
Ext
:
types
.
LinkExt
{
Link
:
types
.
Link
{
Net
:
c
.
Net
,
Addr
:
addr
.
String
(),
ChannelId
:
c
.
Id
,
}
,
Online
:
true
,
OnlineAt
:
time
.
Now
(),
},
conn
:
base
.
NewPackConn
(
conn
,
addr
),
cache
:
make
([][]
byte
,
0
),
...
...
internal/types/channel.go
浏览文件 @
38efe89d
...
...
@@ -2,6 +2,11 @@ package types
import
"time"
type
Statistic
struct
{
Rx
int
`json:"rx"`
Tx
int
`json:"tx"`
}
type
Channel
struct
{
Id
int
`json:"id" storm:"id,increment"`
Name
string
`json:"name"`
...
...
@@ -24,6 +29,33 @@ type Channel struct {
HeartBeatIsHex
bool
`json:"heart_beat_is_hex"`
//PluginId int `json:"plugin_id"`
//TODO 默认模型
CreatedAt
time
.
Time
`json:"created_at"`
}
type
ChannelExt
struct
{
Channel
`storm:"inline"`
Statistic
Links
int
`json:"links"`
Online
bool
`json:"online"`
}
type
Link
struct
{
Id
int
`json:"id" storm:"id,increment"`
Name
string
`json:"name"`
Error
string
`json:"error"`
Serial
string
`json:"serial" storm:"index"`
Net
string
`json:"net"`
Addr
string
`json:"addr"`
ChannelId
int
`json:"channel_id"`
CreatedAt
time
.
Time
`json:"created_at"`
}
type
LinkExt
struct
{
Link
`storm:"inline"`
Statistic
Online
bool
`json:"online"`
}
internal/types/link.go
已删除
100644 → 0
浏览文件 @
f6e7e623
package
types
import
(
"time"
)
type
Link
struct
{
Id
int
`json:"id" storm:"id,increment"`
Name
string
`json:"name"`
Error
string
`json:"error"`
Serial
string
`json:"serial" storm:"index"`
Role
string
`json:"role"`
Net
string
`json:"net"`
Addr
string
`json:"addr"`
ChannelId
int
`json:"channel_id"`
//PluginId int `json:"plugin_id"` //插件ID
Online
bool
`json:"online"`
OnlineAt
time
.
Time
`json:"online_at"`
CreatedAt
time
.
Time
`json:"created_at"`
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录