博客

  • SSE长连接

    刷新页面会主动断开,服务器单向对客户端推送,基于http协议

    简单案例不涉及到token

    const es = new EventSource('http://localhost:3000/sse/events');
    es.onmessage = (e) => console.log('收到:', e.data);
    es.onerror = () => console.log('连接出错,浏览器会自动重连');
    
    或者跟后端协调token这样传
    const es = new EventSource('http://localhost:3000/sse/events?token=xxx');

     

    由于原生 EventSource 无法自定义请求头,要携带 token 必须使用 fetch + 流式读取(或 @microsoft/fetch-event-source 库)。不考虑安装库

    const subscribeUrl = '/api/hx-policy/policy/common/subscribe'
    const controller = new AbortController()
    
    const connect = async () => {
      try {
        const response = await fetch(subscribeUrl, {
          headers: {
                      'X-Authorization': '你的token',
                      'Content-type': 'application/json;charset=UTF-8'
          },
          signal: controller.signal
        })
        if (!response.ok || !response.body) {
          //报错时请求别的逻辑
          return
        }
        const reader = response.body.getReader()
        const decoder = new TextDecoder('utf-8')
        let buffer = ''
        while (true) {
          const { value, done } = await reader.read()
          if (done) {
            break
          }
          buffer += decoder.decode(value, { stream: true })
          const parts = buffer.split('\n\n')
          buffer = parts.pop() || ''
          parts.forEach(part => {
            const dataLines = part
              .split('\n')
              .filter(line => line.startsWith('data:'))
              .map(line => line.slice(5).trimStart())
            if (dataLines.length) {
              const dataStr = dataLines.join('\n')
              try {
                const data = JSON.parse(dataStr)
                // data 结构示例
                // {
                //   "pendingPolicyCount": 19,  // 待审
                //   "returnedTasksCount": 2    // 呈报
                // }
                console.log('请求吗')
                syncMenuCounts(data)
    
              } catch (e) {
                // ignore non-JSON payloads
                console.log('请求失败')
              }
            }
          })
        }
      } catch (e) {
        if (!controller.signal.aborted) {
          //报错时请求别的逻辑
        }
      }
    }
    
    connect()

    只有初始化请求一次接口就可以,剩下的服务器会主动推送数据

    服务器主动推送的效果:

    服务器主动推送,接口还是初始化第一次请求的接口

     

     

     

  • 永不过期esim流量卡

    充值多少用多少流量永久不过期,可以长期备用

    最适合长期屯流量(不过期)

    这是你之前最关注的。

     

    特点:

    有 Lifetime Data(长期流量)
    只要平台不倒,理论上可一直放着
    支持很多国家
    可重复充值同一个 eSIM
    老牌平台

    社区里很多人专门拿它当“备用永久流量卡”。

    适合:

    低频使用
    应急
    长期囤流量

    缺点:

    App 一般
    有时线路波动
    速度不如本地卡

    注册地址

     

     

  • 安卓访问魔法抖音

    1,必须安装shizuku,并且在开启开发者模式下去启动,https://github.com/RikkaApps/Shizuku

     

    方式一:下载并安装Nrfr,https://github.com/Ackites/Nrfr

    能使用方式一修改成功尽量使用这个方式

     

    方式二:https://github.com/ryfineZ/carrier-ims-for-pixel/releases

    安装好后勾选最下面的选项titok选项就可以突破网络

  • 神仙流量卡

    神仙流量卡5G漫游数据流量超出限速速度最高384kbps的无限流量卡

    1,购买地址https://shop.lucky2.com.hk/hk-data-bundle/365days-cn-tw-mo-roaming-5gb-hk-10gb

    2,按照图选择,点击“购买后启动”会跳转到购买页面

     

    3,选择数量和付款方式,付款成功后去邮箱看看会发一个二维码在用支持esim的手机扫描二维码即可,只能绑定一次。

    比国内的运营商强太多