socket官方的文档比较详细,我就不一一说明了,比较需要注意的一点是:
在开发者工具上,我们使用的socket是好的,是可以跟后台沟通的,但是在真机上面调试的时候,我们很容易发现一个错误提示
---------------------------------------draft refuses handshake--------------------------------------------------------
简单的翻译过来,就是拒绝握手,既然拒绝握手,那么肯定是我们的协议,或者是我们的路径是失败的,但是又不是返回404,所以我们可以从我们的url下手,如果我们的url有汉字,那么,请尽量不要传送汉字,是在要传,我们也要传解码的,毕竟没人能保证格式是一样的,当然,不要汉字是最好的!
其实很多的时候都是字符串的问题,只是前后端规范好,都是可以避免的
还有另外一个是比较简单的,就是心跳时间,但是这个可以通过ngix设置的,我就不多说了。
1、如果使用TP5的帮助函数model出现下面的错误,是数据库连接过期导致,把连接过期时间设置长点,但是总有过期的时候,所以建议改用mongodb
2、微信小程序真机环境不予许指定端口,那上面的服务器配置就没有什么用,解决办法是:停用Apache的ssl模块,改用Nginx作为反向代理,具体方法参考我之前写的文章。亲测可用
3、如果用Nginx作为反向代理遇到会话很容易过期,有两种办法,一个是设置代理超时时间为一个很长的时间;一个是客户端做个心跳检测(即定时向服务器发送一条信息),这两种办法都会增加服务器内存消耗,但是没有办法只有折中考虑,建议采用后者