怎么在app里面初始化websocket连接,在page中使用该连接对服务器请求
发布于 6 年前 作者 nalong 19675 次浏览 来自 问答

我希望在我的应用中使用websocket进行与服务器的通信。

我计划在app里面初始化websocket的连接,在page中使用该连接进行对服务器的请求。
现在我的问题是:我想尽了办法也没有能够让页面等待app中连接成功之后再进行服务器的请求。

我尝试了几种方案:
1。在app构造之前创建websocket的连接,在连接成功之后再调用app构造函数。
    这种方案的问题是在页面代码中会提示没有正确调用page。我分析是因为page的调用时序比较靠后的原因。

2。在app的onlaunch回调中调用websock的初始化并返回一个promise,连接成功之后resolve这个promise。

    测试的结果是小程序不会管onlaunch是否是异步函数。所以这个方案也是不能保证我想要的时序。

3。在app的onlaunch中创建websocket的连接,成功之后向所有页面发消息,页面中进行服务器通信。

    问题是我没有找到向页面发消息的方法,并且这种方法即使有也不是最好的,因为有些页面可能还不需要展示,不需要进行初始化,我需要连同页面的onLoad或是onReady回调一同判断。逻辑会非常复杂。

4。在页面中初次进行数据通信时创建websocket的连接,但这种方法我没有办法确定这个连接只被初始化过一次。 先谢了。
回到顶部