PHP中如何保存资源类型?
目前在写一个小项目。本人只是一个前端工程师,现在临时写一个PHP脚本。
流程是前端发送数据到服务器,然后服务器通过socket通信发送数据到设备上,然后再依次从设备发送到前端。
目前数据交互功能已经完成。但是有一个数据是需要频繁从设备发送到前端的,
所以我们希望在 服务器和设备的通信是时刻保持畅通的,这样就能避免每次发送消息都要`socket_creat(),socket_connect()` 。
我起初的想法是将创建的$socket 用session保存起来。但是发现session是不能保存资源类型的。
所以在此想向各位大神请教一下,如何将资源类型保存下来,或者有什么好方法能避免每次发送消息都得创建socket。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不能保存资源类型,资源类型只是一个引用,引用的对象没了你保存这个引用本身也没意义。
你的需求看得不是很明白,如果是要实现一个
socket server
可以使用开源方案(如Workerman
,Swoole
)或者自己写。官方有个简单的例子参考一下:
http://php.net/manual/zh/sockets.examples.php
既然问题在于服务器端需要保持(注意并不是保存!)这个socket连接,解决你的问题只需要使用长连接的socket。
workerman和swoole的框架就是用的
长连接
。长连接和短连接的区别:
http://www.php.cn/php-weizijiaocheng-363026.html
相比短连接:
长连接的服务器端socket长连接主要加上了这四句:
然后设置心跳包保持连接就好~
客户端则多了掉线检验、收发心跳应答之类的功能~