首先在PC端用手機模擬器是沒有問題的。
然后第一次安裝到手機上使用時,new WebSocket("ws://url");還報了302狀態。因為后臺是shiro框架,我直接把socket服務取消登陸攔截了。但是還是會在登陸驗證時保存session物件。以此可以訪問到webSocket服務類了。
@Override
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception {
Pager pager = new Pager();
String username = (String) token.getPrincipal();
// 獲取用戶
User user = userService.getUserByUsername(username);
//將用戶資訊添加到session
Session session = subject.getSession();
session.setAttribute("user",user);
System.out.println(session.getId());
........
然后問題又來了,在WebSocket服務類中獲取到session后沒有user物件,并且查看sessionId同登陸時的也不一致
@OnOpen
public void onOpen(Session session,EndpointConfig config) {
httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
//TODO:PDA訪問時Attributes中沒有user物件
User user = (User)httpSession.getAttribute("user");
this.session = session;
this.userId = user.getId();
System.out.println("有用戶連接了:"+userId);
webSocketMap.put(user.getId(), this);
........
uj5u.com熱心網友回復:
dcloud插件市場有一款不錯的websocket插件,試用下來,穩定性、實時性都還不錯。地址在這里:https://ext.dcloud.net.cn/plugin?id=1334轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/56181.html
標籤:Android
上一篇:android Q動態磁區不能生成vbmeta_sydtem.img,只生成了system.img。
下一篇:求大神
