Skip to content

Commit

Permalink
add topic store for mongo
Browse files Browse the repository at this point in the history
  • Loading branch information
oikomi committed Jun 3, 2015
1 parent 8adbd6e commit 65a8a1c
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 1 deletion.
2 changes: 1 addition & 1 deletion base/base.go
Expand Up @@ -31,7 +31,7 @@ var ChannleList []string

func init() {
ChannleList = []string{protocol.SYSCTRL_CLIENT_STATUS, protocol.SYSCTRL_TOPIC_STATUS, protocol.SYSCTRL_TOPIC_SYNC,
protocol.SYSCTRL_SEND, protocol.SYSCTRL_MONITOR, protocol.STORE_CLIENT_INFO}
protocol.SYSCTRL_SEND, protocol.SYSCTRL_MONITOR, protocol.STORE_CLIENT_INFO, protocol.STORE_TOPIC_INFO}
}

type ChannelState struct {
Expand Down
21 changes: 21 additions & 0 deletions msg_server/proto_proc.go
Expand Up @@ -301,6 +301,27 @@ func (self *ProtoProc)procCreateTopic(cmd protocol.Cmd, session *libnet.Session)
}
}

// store topic
topicStoreData := mongo_store.NewTopicStoreData(topicName, session.State.(*base.SessionState).ClientID,
self.msgServer.cfg.LocalIP)

args = make([]string, 0)
args = append(args, topicName)
CCmd = protocol.NewCmdInternal(protocol.STORE_TOPIC_CMD, args, topicStoreData)
member := mongo_store.NewMember(session.State.(*base.SessionState).ClientID)
CCmd.AnyData.(*mongo_store.TopicStoreData).MemberList = append(CCmd.AnyData.(*mongo_store.TopicStoreData).MemberList, member)

log.Info(CCmd)

if self.msgServer.channels[protocol.STORE_TOPIC_INFO] != nil {
_, err = self.msgServer.channels[protocol.STORE_TOPIC_INFO].Channel.Broadcast(libnet.Json(CCmd))
if err != nil {
log.Error(err.Error())
return err
}
}


return nil
}

Expand Down
1 change: 1 addition & 0 deletions protocol/channel.go
Expand Up @@ -25,4 +25,5 @@ const (

const (
STORE_CLIENT_INFO = "/store/client-info"
STORE_TOPIC_INFO = "/store/topic-info"
)
25 changes: 25 additions & 0 deletions storage/mongo_store/topic_store.go
Expand Up @@ -15,3 +15,28 @@

package mongo_store

type Member struct {
ID string
}

func NewMember(ID string) *Member {
return &Member {
ID : ID,
}
}

type TopicStoreData struct {
TopicName string `bson:"TopicName"`
CreaterID string `bson:"CreaterID"`
MemberList []*Member `bson:"MemberList"`
MsgServerAddr string `bson:"MsgServerAddr"`
}

func NewTopicStoreData(topicName string, createrID string, msgServerAddr string) *TopicStoreData {
return &TopicStoreData{
TopicName : topicName,
CreaterID : createrID,
MemberList : make([]*Member, 0),
MsgServerAddr : msgServerAddr,
}
}

0 comments on commit 65a8a1c

Please sign in to comment.