ThinkPHP 5.1下使用PHPSocket.IO实现websocket通讯

的官方介绍:

PHPSocket.IO是PHP版本的Socket.IO服务端实现,基于workerman开发,用于替换node.js版本Socket.IO服务端。PHPSocket.IO底层采用websocket协议通讯,如果客户端不支持websocket协议, 则会自动采用http长轮询的方式通讯。PHPSocket.IO实现的Polling通信机制包括Adobe Flash Socket、AJAX长轮询、JSONP轮询等。具体采用哪种机制通讯对于开发者完全透明, 开发者使用的是统一的接口。

项目 地址https://github.com/walkor/phpsocket.io下面我们使用 框架来整合 实现客户端和服务端的通讯。

使用的本地开发环境是 +

创建新项目

这样你的安装工作就做好了。接下来配置需要的模块。

配置模块

结合前阵子的文章:ThinkPHP 5.1自动生成模块及目录、文件我们编辑好 文件:

然后运行

这样就有了socketio模块下面 有 和 两个控制器和 下一个 一个视图。

创建服务端

编辑控制器 为(具体参考注释):

为了测试,这里新建了在本地数据库新建了一张表 用来存储客户端发送过来的消息。

这样一个可以返回连接成功消息、接收消息、回复消息、存储消息的简单服务端就做好了。

创建客户端

我们在 控制器中这样写:

在对应的模版文件 中代码:

到这里,一个具备连接服务端,发送消息,接受并输出消息到控制台的简单 客户端就建好了。

为服务端绑定入口文件

在项目的 文件夹下新建一个入口文件 并将其绑定到 模块的 控制器 方法;入口文件 代码:

测试通讯

运行服务端直接运行项目 目录下的 ;

这个输出表示 已经成功在 端口运行监听中。我们打开浏览器打开 页面;可以看到页面会弹出‘链接成功’,同时可以看到服务端 终端上打印出 ,同事浏览器控制台会输出 ,代表已经成功与服务端连接上。测试发送消息在页面输入框内输入任意信息,服务端 终端将会打印信息,代表服务端收到信息,然后服务端控制台将会输出‘收到’+发送的信息。至此,我们的测试完成。

以上只是简单的利用 的框架测试 通讯。源代码地址:https://github.com/hsu1943/thinksocketio供大家参考。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180705G0LLGY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励