uni-app 62websocket连接权限验证和强制下线

简介: uni-app 62websocket连接权限验证和强制下线


store/modules/user.js

import $U from '@/common/free-lib/util.js';
import $H from '@/common/free-lib/request.js';
export default {
  state: {
    user: false,
    apply: {
      rows: [], 
      count: 0,
    },
    mailList:[]
  },
  actions: {
    // 登录后处理
    login({
      state,
      dispatch
    }, user) {
      // 存到状态种
      state.user = user;
      // 存储到本地存储中
      $U.setStorage('token', user.token);
      $U.setStorage('user', JSON.stringify(user));
      $U.setStorage('user_id', user.id);
      // 更新角标提示
      dispatch('updateMailBadge');
    },
    // 退出登录
    logout({
      state
    }) {
      // 清除登录状态
      state.user = false;
      // 清除本地存储数据
      $U.removeStorage('token');
      $U.removeStorage('user');
      $U.removeStorage('user_id');
      // 跳转到登录页
      uni.reLaunch({
        url: '/pages/common/login/login'
      })
    },
    // 初始化登录状态
    initLogin({
      state,
      dispatch
    }) {
      // 拿到存储的数据
      let user = $U.getStorage('user');
      if (user) {
        // 初始化登录状态
        state.user = JSON.parse(user);
        // 连接socket
        let socket = uni.connectSocket({
          url:'ws://xxx:7001/ws',
          complete:()=>{}
        })
        // 监听连接成功
        socket.onOpen(()=>{
          console.log('socket已连接')
        })
        // 监听接收信息
        socket.onMessage((res)=>{
          console.log('监听接收信息',res)
        })
        // 监听断开
        socket.onClose(()=>{
          console.log('socket已断开')
        })
        // 监听错误
        socket.onError(()=>{
          console.log('连接错误')
        })
        // 获取离线信息
        // 获取好友申请列表
        dispatch('getApply');
      }
    },
    // 获取好友申请列表
    getApply({
      state,
      dispatch
    }, page = 1) {
      $H.get('/apply/' + page).then(res => {
        if (page === 1) {
          state.apply = res
        } else {
          // 下拉刷新
          state.apply.rows = [...state.apply.rows, ...res.rows]
          state.apply.count = res.count
        }
        // 更新通讯录角标提示
        dispatch('updateMailBadge');
      });
    },
    // 更新通讯录角标提示
    updateMailBadge({
      state
    }) {
      let count = state.apply.count > 99 ? '99+' : state.apply.count.toString();
      console.log(state.apply.count);
      if (state.apply.count > 0) {
        return uni.setTabBarBadge({
          index: 1,
          text: count
        })
      }
      uni.removeTabBarBadge({
        index: 1
      })
    },
    // 获取通讯录列表
    getMailList({state}){
      $H.get('/friend/list').then(res=>{
        state.mailList = res.rows.newList ? res.rows.newList : [];
      })
    }
  },
}


目录
相关文章
|
1月前
|
开发者 UED
|
7月前
|
开发者 iOS开发
【教程】无法验证 app 需要互联网连接以验证是否信任开发者
【教程】无法验证 app 需要互联网连接以验证是否信任开发者
|
1月前
|
监控
|
1月前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
44 11
|
4月前
|
Java PHP
【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
|
4月前
【Azure App Service】列举为App Service集成虚拟网络(VNET)操作时所需要的最小权限
【Azure App Service】列举为App Service集成虚拟网络(VNET)操作时所需要的最小权限
|
4月前
|
API C#
【Azure App Service】验证App Service接受HTTP 2.0请求
【Azure App Service】验证App Service接受HTTP 2.0请求
|
4月前
|
开发框架 安全 前端开发
【Azure 应用服务】应用代码需要客户端证书进行验证,部署到App Service后,如何配置让客户端携带证书呢?
【Azure 应用服务】应用代码需要客户端证书进行验证,部署到App Service后,如何配置让客户端携带证书呢?
|
4月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
4月前
|
Linux C++ Docker
【Azure 应用服务】App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)
【Azure 应用服务】App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)

热门文章

最新文章