java用set报空指针_redisService.set方法报空指针

package com.game.brag.server;

import java.util.HashSet;

import java.util.Set;

import org.nutz.dao.Dao;

import org.nutz.integration.jedis.RedisService;

import org.nutz.ioc.loader.annotation.Inject;

import org.nutz.ioc.loader.annotation.IocBean;

import org.nutz.json.Json;

import org.nutz.lang.Strings;

import org.nutz.lang.util.NutMap;

import org.nutz.plugins.mvc.websocket.handler.SimpleWsHandler;

import com.game.brag.bean.User;

@IocBean

public class MyHandler extends SimpleWsHandler {

private Dao dao;

// redis注入

@Inject RedisService redisService;

public MyHandler(String prefix, Dao dao) {

super(prefix);

this.dao = dao;

}

public void onMessage(String message) {

try {

NutMap msg = Json.fromJson(NutMap.class, message);

String action = msg.getString("action");

if (Strings.isBlank(action))

return;

String room = msg.getString("room");

//获取当前房间的其他在线用户组,不包括自己,因为还没执行join

Set wsids = roomProvider.wsids(room);

NutMap resp = new NutMap();

switch (action) {

case "join":

join(room);

String openId = msg.getString("openId");

String nickName = msg.getString("nickName");

String imgUrl = msg.getString("imgUrl");

User user = new User();

user.setOpenId(openId);

user.setImgUrl(imgUrl);

user.setNickName(nickName);

//将用户放入redis缓存,服务器定时自动删除缓存

redisService.set(openId, Json.toJson(user));

//通知其他用户

resp.setv("action", "join");

resp.setv("msg", redisService.get(session.getId()));

for(String wsid : wsids){

if(!wsid.equals(session.getId())){

endpoint.sendJson(wsid,resp);

}

}

//向该用户发送其他用户信息

Set users = new HashSet();

for(String wsid : wsids){

users.add(Json.fromJson(User.class, redisService.get(wsid)/*来源参数*/));

}

resp.setv("action", "joinBack");

resp.setv("msg", users);

endpoint.sendJson(session.getId(),resp);

break;

case "left":

left(room);

//通知其他用户

resp.setv("action", "left");

resp.setv("msg", Json.fromJson(User.class, redisService.get(session.getId())));

for(String wsid : wsids){

if(!wsid.equals(session.getId())){

endpoint.sendJson(wsid,resp);

}

}

break;

case "send":

// 处理发送过来的消息

break;

default:

break;

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值