Selaa lähdekoodia

添加方法暴露

lxg 4 vuotta sitten
vanhempi
commit
6a712ef9b6
3 muutettua tiedostoa jossa 17 lisäystä ja 2 poistoa
  1. 2 1
      .idea/workspace.xml
  2. 7 1
      gateway/gateway.go
  3. 8 0
      service.go

+ 2 - 1
.idea/workspace.xml

@@ -3,7 +3,8 @@
   <component name="ChangeListManager">
     <list default="true" id="cd58867b-089e-4508-9033-393b8939261c" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/registry/discovery.go" beforeDir="false" afterPath="$PROJECT_DIR$/registry/discovery.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/gateway/gateway.go" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/gateway.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/service.go" beforeDir="false" afterPath="$PROJECT_DIR$/service.go" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />

+ 7 - 1
gateway/gateway.go

@@ -7,6 +7,7 @@ import (
 	"io"
 	"net"
 	"sync"
+	"time"
 )
 
 const (
@@ -80,9 +81,14 @@ func (g *Gateway) loop(ctx context.Context) {
 		select {
 		case conn, ok = <-g.ch:
 			if ok {
+				//set deadline
+				_ = conn.SetReadDeadline(time.Now().Add(time.Millisecond * 800))
 				if n, err = io.ReadFull(conn, feature); err != nil {
-					continue
+					_ = conn.Close()
+					break
 				}
+				//reset deadline
+				_ = conn.SetReadDeadline(time.Time{})
 				for _, l := range g.listeners {
 					if bytes.Equal(feature[:n], l.feature[:n]) {
 						l.l.Receive(wrapConn(conn, feature[:n]))

+ 8 - 0
service.go

@@ -98,6 +98,14 @@ func (svr *Service) CreateRequest(name, method string, body interface{}) (req *R
 	}, nil
 }
 
+func (svr *Service) HttpServe() *http.Server {
+	return svr.httpSvr
+}
+
+func (svr *Service) RPCServe() *rpc.Server {
+	return svr.rpcSvr
+}
+
 func (svr *Service) generateInstance() {
 	var (
 		err      error