提交 cbab7af1 编写于 作者: 梦境迷离's avatar 梦境迷离

fix websocket bug

上级 05b5bead
......@@ -44,6 +44,6 @@ spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.timeout=2000
#Log
logging.level.*=warn
logging.level.cn.edu.layim.repository=warn
logging.level.*=info
logging.level.cn.edu.layim.repository=info
logging.file=./log/LayIM.log
\ No newline at end of file
......@@ -41,18 +41,23 @@ class CookieService {
userCookie.setPath("/")
response.addCookie(userCookie)
} else {
//没有勾选时,清楚cookie
val cookies = request.getCookies;
for (cookie <- cookies) {
val cookieName = Try(new String(baseD.decode(cookie.getName))).getOrElse("")
if (cookieName == user.getEmail) {
LOGGER.info(
s"remove cookie for user => [email = ${user.getEmail}, cookie name = $cookieName]"
)
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
try {
//没有勾选时,清楚cookie
val cookies = request.getCookies
for (cookie <- cookies) {
val cookieName = new String(baseD.decode(cookie.getName))
if (cookieName == user.getEmail) {
LOGGER.info(
s"remove cookie for user => [email = ${user.getEmail}, cookie name = $cookieName]"
)
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
}
}
} catch {
case e: Exception =>
LOGGER.error(s"failed in cookie service: $e")
}
}
}
......
......@@ -48,7 +48,7 @@ class WebSocketProvider @Autowired() (redisService: RedisService) {
private lazy val jobActor = system.actorOf(Props(classOf[ScheduleJobActor]))
//重连是3秒
system.scheduler.schedule(5000 milliseconds, 60000 milliseconds, jobActor, OnlineUserMessage)
system.scheduler.schedule(5000 milliseconds, 10000 milliseconds, jobActor, OnlineUserMessage)
/**
* 处理连接与消息处理
......
......@@ -32,7 +32,7 @@ object WebSocketService {
private final lazy val LOGGER: Logger = LoggerFactory.getLogger(WebSocketService.getClass)
private final lazy val application = Application.getApplicationContext
final lazy val actorRefSessions = new ConcurrentHashMap[Integer, ActorRef]
final val actorRefSessions = new ConcurrentHashMap[Integer, ActorRef]
private lazy val userService: UserService = application.getBean(classOf[UserService])
private lazy val redisService: RedisService = application.getBean(classOf[RedisService])
......@@ -262,6 +262,6 @@ object WebSocketService {
//用于统计实时在线的人数,根据ConcurrentHashMap特性,该人数不会很准确
//重连之后会重新加入进来,但与Redis还是有差异
def getConnections = actorRefSessions.size()
@volatile def getConnections = actorRefSessions.size()
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册