1
0
forked from x/icebergs
This commit is contained in:
shylinux 2020-03-25 23:51:01 +08:00
parent da00105d34
commit 524557dddd
2 changed files with 24 additions and 4 deletions

View File

@ -844,7 +844,7 @@ var Index = &ice.Context{Name: "web", Help: "网络模块",
target := strings.Split(arg[0], ".")
m.Warn(m.Richs(ice.WEB_SPACE, nil, target[0], func(key string, value map[string]interface{}) {
if socket, ok := value["socket"].(*websocket.Conn); !m.Warn(!ok, "socket err") {
if channel, ok := value["channel"].(chan *ice.Message); !m.Warn(!ok, "socket err") {
// 复制选项
for _, k := range kit.Simple(m.Optionv("_option")) {
switch k {
@ -863,7 +863,8 @@ var Index = &ice.Context{Name: "web", Help: "网络模块",
// 下发命令
m.Target().Server().(*Frame).send[id] = m
socket.WriteMessage(MSG_MAPS, []byte(m.Format("meta")))
channel <- m
t := time.AfterFunc(kit.Duration(m.Conf(ice.WEB_SPACE, "meta.timeout.c")), func() {
m.Log(ice.LOG_WARN, "timeout")
})
@ -1947,15 +1948,26 @@ var Index = &ice.Context{Name: "web", Help: "网络模块",
}
// m.Cmd(ice.WEB_GROUP, m.Option("group"), "add", m.Option("name"))
c := make(chan *ice.Message, ice.ICE_CHAN)
// 添加节点
h := m.Rich(ice.WEB_SPACE, nil, kit.Dict(
kit.MDB_TYPE, m.Option("node"),
kit.MDB_NAME, m.Option("name"),
kit.MDB_TEXT, m.Option("user"),
"share", share, "socket", s,
"channel", c,
))
m.Log(ice.LOG_CREATE, "space: %s share: %s", m.Option(kit.MDB_NAME), share)
m.Gos(m, func(m *ice.Message) {
for {
select {
case msg := <-c:
s.WriteMessage(MSG_MAPS, []byte(msg.Format("meta")))
}
}
})
m.Gos(m, func(m *ice.Message) {
// 监听消息
m.Event(ice.SPACE_START, m.Option("node"), m.Option("name"))

View File

@ -407,8 +407,12 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
prefix := kit.Keys(kit.MDB_HASH, arg[0], "tool", kit.MDB_HASH, arg[1])
if len(arg) == 2 {
// 命令列表
m.Set(ice.MSG_OPTION)
m.Render("")
if p := kit.Select(m.Option("pod"), m.Option("you")); p != "" {
if m.Cmdy(ice.WEB_SPACE, p, arg); len(m.Appendv("river")) > 0 {
return
}
}
m.Grows(ice.CHAT_RIVER, prefix, "", "", func(index int, value map[string]interface{}) {
if meta, ok := kit.Value(value, "meta").(map[string]interface{}); ok {
m.Push("river", arg[0])
@ -441,6 +445,10 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
))
m.Log(ice.LOG_INSERT, "storm: %s %d: %v", arg[1], id, arg[i:i+5])
}
if p := kit.Select(m.Option("pod"), m.Option("you")); p != "" {
m.Cmd(ice.WEB_SPACE, p, arg)
}
return
}