diff --git a/bilibili/aceld/IM-System/server.go b/bilibili/aceld/IM-System/server.go
index 04d212e..6dce1b2 100644
--- a/bilibili/aceld/IM-System/server.go
+++ b/bilibili/aceld/IM-System/server.go
@@ -4,7 +4,9 @@ import (
 	"fmt"
 	"io"
 	"net"
+	"runtime"
 	"sync"
+	"time"
 )
 
 type Server struct {
@@ -53,6 +55,8 @@ func (server *Server) Handler(conn net.Conn) {
 
 	// 用户上线, 将用户加入到OnlineMap中
 	user.Online()
+	// 监听用户是否活跃的channel
+	isLive := make(chan bool)
 
 	// 接收客户端发送的消息
 	go func() {
@@ -71,10 +75,28 @@ func (server *Server) Handler(conn net.Conn) {
 			msg := string(buf[:n-1])
 			// 将得到的消息进行广播
 			user.DoMessage(msg)
+			// 用户的任意消息代表当前用户是一个活跃的,将true发给isLive管道
+			isLive <- true
 		}
 	}()
-	// 当前handler阻塞
-	select {}
+	// 设定定时器实现超时强踢
+	for {
+		select {
+		case <-isLive:
+			// 当前用户是活跃的,应该重置定时器
+			// 不做任何事情,为了激活select,更新下面的定时器
+			// 只要执行time.After即实现重置定时器
+		case <-time.After(time.Second * 10):
+			// 已经超时,将当前User强制关闭
+			user.SendMsg("你被踢了")
+			// 销毁用户的资源
+			close(user.C)
+			// 关闭连接
+			conn.Close()
+			// 退出
+			runtime.Goexit() // return
+		}
+	}
 }
 
 // Server类的成员方法:启动服务器的接口