有个需求是一个websocket连接,要每个页面都需要接收这个连接的信息,所以我现在的解决方式是在首页index.js里在onShow方法里新建了一个websocket连接
|
} |
但是问题就来了,我的首页是一个tabbar,我从另外一个页面一切换到这个页面,socket就新建了一个,切换到第五次之后,就有5个socket连接,因为小程序和web端是同一套接口,不允许异地登录,web端登陆之后token就会变,此时我再登录小程序会自动重新登录改变token,而我的socket连接还是之前那5个,token就变化了,此时后台就会禁止我拿信息,想问下我这个socket是要在什么时候关闭呢?
在app的onLaunch写吧
不能,因为onLauch只能运行一次,就是小程序初始化的时候
onLauch是小程序处于活跃状态的时候才只运行一次,如果小程序5分钟没有操作了,这时候会自动关掉的,下一次再进小程序的时候就会再调用onLaunch的
现在已经好啦,谢谢啦,因为我这个是登陆之后才去连接的,第一次进小程序的时候,用户没有登录,所以不会去连接,所以我就点击登录之后再去连接,之前关不掉websocket是因为我调用微信的close方法,后台那边完全收不到close的指令,不知道咋回事,后来是直接使用sendSocketMessage方法,发送与后台约定的close的命令,然后后台收到这指令就关闭了,有点不明白小程序中的socket机制,onSocketMessage按理来说应该是接收最新socket消息的,但是测试发现,它处理的一直都是旧的socket,哪怕此时我只开了两个socket连接
👍
写到onLoad里?写到app.js里?