| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package modules
-
- import "encoding/json"
-
- //import "strconv"
- //*****메세지 타입 상수화
- const (
- KGM = 1 + iota
- KSM
- PM
- SM
- RM
- WM
- )
-
- //*****메세지 틀*****
-
- type Message struct {
- from string //ip주소
- version string
- time string
- kind int //종류
- }
-
- type MsgUnit interface {
- // ConvertToJson - send 전 json형식으로 바꾸는 함수
- ConvertToJson() ([]byte, error)
- // CheckType - Message의 타입을 알려줌
- CheckType() int
- // SetType - Message 객체가 생성 되었을때 종류 정하기
- //SetType(int)
- }
-
- //*****각 메세지 형식 및 정의**********
-
- //KeyGen 명령 메세지
- type KeyGenMsg struct {
- Message
- iptable []string
- }
-
- //Key공유 메세지
- type KeyShareMsg struct {
- Message
- base32 string
- }
-
- //전달할 내용을 담은 메세지
- type PublishMsg struct {
- Message
- subscription []int64 //선호도
- content []int64 // 내용
- }
-
- //구독 정보를 담은 메세지
- type SubscriptionMsg struct {
- Message
- subscription []int64 //선호도
- }
-
- //Microservice 등록 메세지
- type RegisterMsg struct {
- Message
- }
-
- //Microservice 탈퇴 메세지
- type WithdrawMsg struct {
- Message
- }
-
- //**************************
-
- func (msg *KeyGenMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg *KeyShareMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg *PublishMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg *SubscriptionMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg *RegisterMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg *WithdrawMsg) ConvertToJson() ([]byte, error) {
- js := msg
- jsonBytes, err := json.Marshal(js)
- return jsonBytes, err
- }
-
- func (msg Message) CheckType() int {
- return msg.kind
- }
-
- /*
- func (msg Message)SetType(t int){
- msg.kind=t
- }
-
- func NewMessage() *Message{
- //m:=&Message{
- //from: ip
- //version: version
- //time : time
- //kind : kind(종류)
- //}
- }
- */
-
- //*********************************
-
- // Send - rpc를 이용하여 msg전송
- //func (msg *MsgUnit) Send(ipaddr string, message MsgUnit) (error){}
-
- // Recieve - rpc를 이용하여 msg전달 받음(rpc call)
- //func Recieve(msg *MsgUnit) (MsgUnit, error){ }
-
- //*********************************
|