Преглед изворни кода

initialized project

master
kidjung пре 4 година
родитељ
комит
0e27deaeb2
3 измењених фајлова са 173 додато и 0 уклоњено
  1. 7
    0
      src/microservice/main.go
  2. 37
    0
      src/microservice/modules/init.go
  3. 129
    0
      src/microservice/modules/message.go

+ 7
- 0
src/microservice/main.go Прегледај датотеку

@@ -0,0 +1,7 @@
1
+package main
2
+
3
+import "fmt"
4
+
5
+func main() {
6
+	fmt.Println("test")
7
+}

+ 37
- 0
src/microservice/modules/init.go Прегледај датотеку

@@ -0,0 +1,37 @@
1
+package modules
2
+
3
+import (
4
+	"fmt"
5
+	"log"
6
+	"net"
7
+	"net/rpc"
8
+)
9
+
10
+type Microservice struct {
11
+}
12
+
13
+func (microservice *Microservice) Send2MM() {
14
+
15
+}
16
+
17
+func (microservice *Microservice) Send2client() {
18
+
19
+}
20
+
21
+func (microservice *Microservice) Listen() {
22
+	l, err := net.Listen("tcp", fmt.Sprintf(":%v", 8160))
23
+
24
+	if err != nil {
25
+		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err))
26
+	}
27
+	defer l.Close()
28
+
29
+	for {
30
+		conn, _ := l.Accept()
31
+		go rpc.ServeConn(conn)
32
+	}
33
+}
34
+
35
+func (microservice *Microservice) Run() {
36
+
37
+}

+ 129
- 0
src/microservice/modules/message.go Прегледај датотеку

@@ -0,0 +1,129 @@
1
+package modules
2
+
3
+import "encoding/json"
4
+
5
+//import "strconv"
6
+//*****메세지 타입 상수화
7
+const (
8
+	KGM = 1 + iota
9
+	KSM
10
+	PM
11
+	SM
12
+	RM
13
+	WM
14
+)
15
+
16
+//*****메세지 틀*****
17
+
18
+type Message struct {
19
+	from    string //ip주소
20
+	version string
21
+	time    string
22
+	kind    int //종류
23
+}
24
+
25
+func (msg Message) From() string {
26
+	return msg.from
27
+}
28
+
29
+func (msg Message) Version() string {
30
+	return msg.version
31
+}
32
+
33
+func (msg Message) Time() string {
34
+	return msg.time
35
+}
36
+
37
+func (msg Message) Kind() int {
38
+	return msg.kind
39
+}
40
+
41
+type MsgUnit interface {
42
+	// ConvertToJson - send 전 json형식으로 바꾸는 함수
43
+	ConvertToJson() ([]byte, error)
44
+	// CheckType - Message의 타입을 알려줌
45
+	CheckType() int
46
+}
47
+
48
+//*****각 메세지 형식 및 정의**********
49
+
50
+//KeyGen 명령 메세지
51
+type KeyGenMsg struct {
52
+	Message
53
+	iptable []string
54
+}
55
+
56
+//Key공유 메세지
57
+type KeyShareMsg struct {
58
+	Message
59
+	key string
60
+}
61
+
62
+//전달할 내용을 담은 메세지
63
+type PublishMsg struct {
64
+	Message
65
+	topic   []int64 //대주제
66
+	value   []int64 //topic의 세부적인 내용
67
+	content []int64 // 내용
68
+}
69
+
70
+//구독 정보를 담은 메세지
71
+type SubscriptionMsg struct {
72
+	Message
73
+	topic    []int64  //대주제
74
+	value    []int64  //피연산자
75
+	operator []string //연산자
76
+	isAlpha  bool     // 범위연산인지 단순비교연산인지 구분 가능하게 함
77
+}
78
+
79
+//Microservice 등록 메세지
80
+type RegisterMsg struct {
81
+	Message
82
+}
83
+
84
+//Microservice 탈퇴 메세지(없앰)
85
+type WithdrawMsg struct {
86
+	Message
87
+}
88
+
89
+//**************************
90
+
91
+func (msg *KeyGenMsg) ConvertToJson() ([]byte, error) {
92
+	js := msg
93
+	jsonBytes, err := json.Marshal(js)
94
+	return jsonBytes, err
95
+}
96
+
97
+func (msg *KeyShareMsg) ConvertToJson() ([]byte, error) {
98
+	js := msg
99
+	jsonBytes, err := json.Marshal(js)
100
+	return jsonBytes, err
101
+}
102
+
103
+func (msg *PublishMsg) ConvertToJson() ([]byte, error) {
104
+	js := msg
105
+	jsonBytes, err := json.Marshal(js)
106
+	return jsonBytes, err
107
+}
108
+
109
+func (msg *SubscriptionMsg) ConvertToJson() ([]byte, error) {
110
+	js := msg
111
+	jsonBytes, err := json.Marshal(js)
112
+	return jsonBytes, err
113
+}
114
+
115
+func (msg *RegisterMsg) ConvertToJson() ([]byte, error) {
116
+	js := msg
117
+	jsonBytes, err := json.Marshal(js)
118
+	return jsonBytes, err
119
+}
120
+
121
+func (msg *WithdrawMsg) ConvertToJson() ([]byte, error) {
122
+	js := msg
123
+	jsonBytes, err := json.Marshal(js)
124
+	return jsonBytes, err
125
+}
126
+
127
+func (msg Message) CheckType() int {
128
+	return msg.kind
129
+}

Loading…
Откажи
Сачувај