示例#1
0
文件: main.go 项目: viney/socketio
func connect(ns *socketio.NameSpace) {
	// 获取所有数据
	messages := c.FindAll()
	if err := ns.Emit("connect", messages); err != nil {
		log.Warn(errors.As(err))
		return
	}

	id := ns.Id()
	ip := Ip(sio.Request)
	content := "我上线了,大家在聊什么呢?"
	message := &Message{ip, Format(time.Now()), content}

	// go func(map[string]*socketio.NameSpace, *Message) {
	for k, ons := range users {
		if k != id {
			if err := ons.Emit("join", message); err != nil {
				log.Warn(errors.As(err, k))
				return
			}
		}
	}
	// }(users, message)

	if _, ok := users[id]; !ok {
		// 添加到列表
		users[id] = ns
		ips[id] = ip
	}
}