Skip to content

Commit f264814

Browse files
committed
添加更新http接口
1 parent 5e5744b commit f264814

291 files changed

Lines changed: 14923 additions & 12419 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

go.mod

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ module github.com/OpenIoTHub/server-go
33
go 1.12
44

55
require (
6-
github.com/OpenIoTHub/server-grpc-api v1.0.4
6+
github.com/OpenIoTHub/server-grpc-api v1.0.5
77
github.com/OpenIoTHub/utils v0.0.63
88
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
9-
github.com/golang/protobuf v1.4.2 // indirect
109
github.com/gomodule/redigo v2.0.0+incompatible
1110
github.com/iotdevice/zeroconf v0.1.2 // indirect
1211
github.com/klauspost/cpuid v1.3.0 // indirect
@@ -24,13 +23,11 @@ require (
2423
github.com/xtaci/kcp-go/v5 v5.5.14 // indirect
2524
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
2625
golang.org/x/mod v0.3.0 // indirect
27-
golang.org/x/net v0.0.0-20200625001655-4c5254603344
26+
golang.org/x/net v0.0.0-20201027133719-8eef5233e2a1
2827
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a // indirect
29-
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect
3028
golang.org/x/text v0.3.3 // indirect
3129
golang.org/x/tools v0.0.0-20200702044944-0cc1aa72b347 // indirect
32-
google.golang.org/genproto v0.0.0-20200702021140-07506425bd67 // indirect
33-
google.golang.org/grpc v1.30.0
30+
google.golang.org/grpc v1.33.1
3431
google.golang.org/protobuf v1.25.0 // indirect
3532
gopkg.in/yaml.v2 v2.3.0
3633
)

go.sum

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ github.com/OpenIoTHub/getip v0.1.2 h1:xpKf37ble1H6N02XgpAGLxG5cVcp8vIIs5XaUYNi+g
55
github.com/OpenIoTHub/getip v0.1.2/go.mod h1:yEnLPtVS4JBoEU720mO6FmxLwCICKLyOcOEKRD6w0cY=
66
github.com/OpenIoTHub/server-grpc-api v1.0.4 h1:dVqKqdhV6VaQIZipOHqxJEpt7NfU8QvPTaDXVJd1Vog=
77
github.com/OpenIoTHub/server-grpc-api v1.0.4/go.mod h1:4Tvt1MoMNqIBcVSweRZOXuqOj5JWw1HPNxd9vZv4oAI=
8+
github.com/OpenIoTHub/server-grpc-api v1.0.5 h1:IPoQG0V85iHcXVr03T5vPI6hfr6utv9IoHVdxTcPims=
9+
github.com/OpenIoTHub/server-grpc-api v1.0.5/go.mod h1:CxrYiU7h5mTStRs9IWYNu8NRNqCNc0ojIV0ab2i/7bY=
810
github.com/OpenIoTHub/utils v0.0.61 h1:CSe8mcGq8NX8xBtTzvjkcpczrFxUrlByUE5AWnnp+zw=
911
github.com/OpenIoTHub/utils v0.0.61/go.mod h1:i0gwARUWZV6mtb5uREHNGzlPOjQxU282ztsJM9dQjaA=
1012
github.com/OpenIoTHub/utils v0.0.62 h1:N2xh9OvUD0UcEnr3LXQY2TnC0OLVZZDGhjZ+Zs6Lp+4=
@@ -43,6 +45,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
4345
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
4446
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
4547
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
48+
github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
49+
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
4650
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
4751
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
4852
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
@@ -54,6 +58,7 @@ github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
5458
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
5559
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
5660
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
61+
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
5762
github.com/grandcat/zeroconf v1.0.0 h1:uHhahLBKqwWBV6WZUDAT71044vwOTL+McW0mBJvo6kE=
5863
github.com/grandcat/zeroconf v1.0.0/go.mod h1:lTKmG1zh86XyCoUeIHSA4FJMBwCJiQmGfcP2PdzytEs=
5964
github.com/iotdevice/zeroconf v0.0.0-20190424104450-85eadb44205c/go.mod h1:38eciZlYiQcW1WL0g+Pl0FwD0Md2v39yWyT2MA4Z2ag=
@@ -168,6 +173,8 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
168173
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
169174
golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4=
170175
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
176+
golang.org/x/net v0.0.0-20201027133719-8eef5233e2a1 h1:IEhJ99VWSYpHIxjlbu3DQyHegGPnQYAv0IaCX9KHyG0=
177+
golang.org/x/net v0.0.0-20201027133719-8eef5233e2a1/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
171178
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
172179
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
173180
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -186,6 +193,9 @@ golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7w
186193
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
187194
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo=
188195
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
196+
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
197+
golang.org/x/sys v0.0.0-20201027130517-9d1ec526b7bf h1:HmHgHRpqpvB74D7bjXkue6kkHJfOrKyYJtW6Sv4jpI4=
198+
golang.org/x/sys v0.0.0-20201027130517-9d1ec526b7bf/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
189199
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
190200
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
191201
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@@ -216,6 +226,8 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
216226
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
217227
google.golang.org/genproto v0.0.0-20200702021140-07506425bd67 h1:4BC1C1i30F3MZeiIO6y6IIo4DxrtOwITK87bQl3lhFA=
218228
google.golang.org/genproto v0.0.0-20200702021140-07506425bd67/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
229+
google.golang.org/genproto v0.0.0-20201026171402-d4b8fe4fd877 h1:d4k3uIU763E31Rk4UZPA47oOoBymMsDImV3U4mGhX9E=
230+
google.golang.org/genproto v0.0.0-20201026171402-d4b8fe4fd877/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
219231
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
220232
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
221233
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
@@ -224,6 +236,8 @@ google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
224236
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
225237
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
226238
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
239+
google.golang.org/grpc v1.33.1 h1:DGeFlSan2f+WEtCERJ4J9GJWk15TxUi8QGagfI87Xyc=
240+
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
227241
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
228242
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
229243
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

session/SessionsManager.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package session
33
import (
44
"errors"
55
"github.com/OpenIoTHub/server-go/config"
6+
"github.com/OpenIoTHub/server-grpc-api/pb-go"
67
"github.com/OpenIoTHub/utils/io"
78
"github.com/OpenIoTHub/utils/models"
89
"github.com/OpenIoTHub/utils/msg"
@@ -17,6 +18,7 @@ type SessionsManager struct {
1718
Session map[string]*Session
1819
HttpProxyMap map[string]*HttpProxy
1920
RedisPool *redis.Pool
21+
pb.UnimplementedHttpManagerServer
2022
}
2123

2224
var SessionsCtl SessionsManager

session/grpc.go

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package session
2+
3+
import (
4+
"context"
5+
"github.com/OpenIoTHub/server-grpc-api/pb-go"
6+
"google.golang.org/grpc/codes"
7+
"google.golang.org/grpc/status"
8+
)
9+
10+
//grpc
11+
func (sm *SessionsManager) CreateOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.HTTPConfig, error) {
12+
err := authOpenIoTHubGrpc(ctx, in.RunId)
13+
if err != nil {
14+
return in, status.Errorf(codes.Unauthenticated, err.Error())
15+
}
16+
17+
return in, sm.AddHttpProxy(&HttpProxy{
18+
Domain: in.Domain,
19+
RunId: in.RunId,
20+
RemoteIP: in.RemoteIP,
21+
RemotePort: int(in.RemotePort),
22+
UserName: in.UserName,
23+
Password: in.Password,
24+
IfHttps: in.IfHttps,
25+
Description: in.Description,
26+
})
27+
}
28+
29+
func (sm *SessionsManager) UpdateOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.HTTPConfig, error) {
30+
err := authOpenIoTHubGrpc(ctx, in.RunId)
31+
if err != nil {
32+
return in, status.Errorf(codes.Unauthenticated, err.Error())
33+
}
34+
h := &HttpProxy{
35+
Domain: in.Domain,
36+
RunId: in.RunId,
37+
RemoteIP: in.RemoteIP,
38+
RemotePort: int(in.RemotePort),
39+
UserName: in.UserName,
40+
Password: in.Password,
41+
IfHttps: in.IfHttps,
42+
Description: in.Description,
43+
}
44+
sm.DelHttpProxy(h.Domain)
45+
return in, sm.AddHttpProxy(h)
46+
}
47+
48+
func (sm *SessionsManager) DeleteOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.Empty, error) {
49+
err := authOpenIoTHubGrpc(ctx, in.RunId)
50+
if err != nil {
51+
return &pb.Empty{}, status.Errorf(codes.Unauthenticated, err.Error())
52+
}
53+
//TODO 验证要删除的域名的所属id是否和token的id一致
54+
sm.DelHttpProxy(in.Domain)
55+
return &pb.Empty{}, nil
56+
57+
}
58+
59+
func (sm *SessionsManager) GetOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.HTTPConfig, error) {
60+
err := authOpenIoTHubGrpc(ctx, in.RunId)
61+
if err != nil {
62+
return in, status.Errorf(codes.Unauthenticated, err.Error())
63+
}
64+
config, err := sm.GetOneHttpProxy(in.Domain)
65+
if err != nil {
66+
return &pb.HTTPConfig{}, err
67+
}
68+
return &pb.HTTPConfig{
69+
Domain: config.Domain,
70+
RunId: config.RunId,
71+
RemoteIP: config.RemoteIP,
72+
RemotePort: int32(config.RemotePort),
73+
UserName: config.UserName,
74+
Password: config.Password,
75+
IfHttps: config.IfHttps,
76+
Description: config.Description,
77+
RemotePortStatus: config.RemotePortStatus,
78+
}, err
79+
}
80+
81+
func (sm *SessionsManager) GetAllHTTP(ctx context.Context, in *pb.Device) (*pb.HTTPList, error) {
82+
var cfgs []*pb.HTTPConfig
83+
err := authOpenIoTHubGrpc(ctx, in.RunId)
84+
if err != nil {
85+
return &pb.HTTPList{HTTPConfigs: cfgs}, status.Errorf(codes.Unauthenticated, err.Error())
86+
}
87+
for _, config := range sm.GetAllHttpProxy() {
88+
if config.RunId == in.RunId && config.RemoteIP == in.Addr {
89+
cfgs = append(cfgs, &pb.HTTPConfig{
90+
Domain: config.Domain,
91+
RunId: config.RunId,
92+
RemoteIP: config.RemoteIP,
93+
RemotePort: int32(config.RemotePort),
94+
UserName: config.UserName,
95+
Password: config.Password,
96+
IfHttps: config.IfHttps,
97+
Description: config.Description,
98+
RemotePortStatus: config.RemotePortStatus,
99+
})
100+
}
101+
}
102+
return &pb.HTTPList{HTTPConfigs: cfgs}, nil
103+
}
104+
105+
//grpc end

session/httpProxy.go

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package session
22

33
import (
4-
"context"
54
"fmt"
6-
"github.com/OpenIoTHub/server-grpc-api/pb-go"
75
"github.com/OpenIoTHub/utils/io"
86
"github.com/libp2p/go-yamux"
97
"golang.org/x/net/websocket"
10-
"google.golang.org/grpc/codes"
11-
"google.golang.org/grpc/status"
128
"log"
139
"net"
1410
"net/http"
@@ -41,83 +37,6 @@ func (hp *HttpProxy) UpdateRemotePortStatus() {
4137
hp.RemotePortStatus = online
4238
}
4339

44-
//grpc
45-
func (sm *SessionsManager) CreateOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.HTTPConfig, error) {
46-
err := authOpenIoTHubGrpc(ctx, in.RunId)
47-
if err != nil {
48-
return in, status.Errorf(codes.Unauthenticated, err.Error())
49-
}
50-
51-
return in, sm.AddHttpProxy(&HttpProxy{
52-
Domain: in.Domain,
53-
RunId: in.RunId,
54-
RemoteIP: in.RemoteIP,
55-
RemotePort: int(in.RemotePort),
56-
UserName: in.UserName,
57-
Password: in.Password,
58-
IfHttps: in.IfHttps,
59-
Description: in.Description,
60-
})
61-
}
62-
63-
func (sm *SessionsManager) DeleteOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.Empty, error) {
64-
err := authOpenIoTHubGrpc(ctx, in.RunId)
65-
if err != nil {
66-
return &pb.Empty{}, status.Errorf(codes.Unauthenticated, err.Error())
67-
}
68-
sm.DelHttpProxy(in.Domain)
69-
return &pb.Empty{}, nil
70-
71-
}
72-
73-
func (sm *SessionsManager) GetOneHTTP(ctx context.Context, in *pb.HTTPConfig) (*pb.HTTPConfig, error) {
74-
err := authOpenIoTHubGrpc(ctx, in.RunId)
75-
if err != nil {
76-
return in, status.Errorf(codes.Unauthenticated, err.Error())
77-
}
78-
config, err := sm.GetOneHttpProxy(in.Domain)
79-
if err != nil {
80-
return &pb.HTTPConfig{}, err
81-
}
82-
return &pb.HTTPConfig{
83-
Domain: config.Domain,
84-
RunId: config.RunId,
85-
RemoteIP: config.RemoteIP,
86-
RemotePort: int32(config.RemotePort),
87-
UserName: config.UserName,
88-
Password: config.Password,
89-
IfHttps: config.IfHttps,
90-
Description: config.Description,
91-
RemotePortStatus: config.RemotePortStatus,
92-
}, err
93-
}
94-
95-
func (sm *SessionsManager) GetAllHTTP(ctx context.Context, in *pb.Device) (*pb.HTTPList, error) {
96-
var cfgs []*pb.HTTPConfig
97-
err := authOpenIoTHubGrpc(ctx, in.RunId)
98-
if err != nil {
99-
return &pb.HTTPList{HTTPConfigs: cfgs}, status.Errorf(codes.Unauthenticated, err.Error())
100-
}
101-
for _, config := range sm.GetAllHttpProxy() {
102-
if config.RunId == in.RunId && config.RemoteIP == in.Addr {
103-
cfgs = append(cfgs, &pb.HTTPConfig{
104-
Domain: config.Domain,
105-
RunId: config.RunId,
106-
RemoteIP: config.RemoteIP,
107-
RemotePort: int32(config.RemotePort),
108-
UserName: config.UserName,
109-
Password: config.Password,
110-
IfHttps: config.IfHttps,
111-
Description: config.Description,
112-
RemotePortStatus: config.RemotePortStatus,
113-
})
114-
}
115-
}
116-
return &pb.HTTPList{HTTPConfigs: cfgs}, nil
117-
}
118-
119-
//grpc end
120-
12140
//监听服务
12241
//type Handle struct{}
12342

0 commit comments

Comments
 (0)