当前位置: 首页 > wzjs >正文

北京网站建设招聘重庆seo1

北京网站建设招聘,重庆seo1,招商加盟网站推广方案,高端网站定制设计公司文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…

文章精选推荐

1 JetBrains Ai assistant 编程工具让你的工作效率翻倍
2 Extra Icons:JetBrains IDE的图标增强神器
3 IDEA插件推荐-SequenceDiagram,自动生成时序图
4 BashSupport Pro 这个ides插件主要是用来干嘛的 ?
5 IDEA必装的插件:Spring Boot Helper的使用与功能特点
6 Ai assistant ,又是一个写代码神器
7 Cursor 设备ID修改器,你的Cursor又可以继续试用了

文章正文

要实现一对一聊天功能,使用 Workerman 5.0 作为后端,前端可以使用 WebSocket 进行通信。以下是实现步骤和代码示例。

1. 安装 Workerman

首先,确保你已经安装了 Workerman。可以通过 Composer 安装:

composer require workerman/workerman

2. 后端代码

创建一个 PHP 文件(例如 chat_server.php),用于处理 WebSocket 连接和消息传递。

<?php
require_once __DIR__ . '/vendor/autoload.php';use Workerman\Worker;
use Workerman\Connection\TcpConnection;// 创建一个 WebSocket 服务器
$ws_worker = new Worker("websocket://0.0.0.0:2346");// 保存用户连接的数组
$users = [];// 当有客户端连接时
$ws_worker->onConnect = function(TcpConnection $connection) use (&$users) {echo "New connection\n";
};// 当有客户端发送消息时
$ws_worker->onMessage = function(TcpConnection $connection, $data) use (&$users) {$message = json_decode($data, true);if (isset($message['type'])) {switch ($message['type']) {case 'login':// 用户登录,保存连接$users[$message['user_id']] = $connection;$connection->user_id = $message['user_id'];echo "User {$message['user_id']} logged in\n";break;case 'chat':// 一对一聊天if (isset($users[$message['to_user_id']])) {$users[$message['to_user_id']]->send(json_encode(['type' => 'chat','from_user_id' => $connection->user_id,'message' => $message['message']));}break;}}
};// 当客户端断开连接时
$ws_worker->onClose = function(TcpConnection $connection) use (&$users) {if (isset($connection->user_id)) {unset($users[$connection->user_id]);echo "User {$connection->user_id} disconnected\n";}
};// 运行 worker
Worker::runAll();

3. 前端代码

在前端,使用 WebSocket 连接到服务器,并实现登录和发送消息的功能。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>WebSocket Chat</title>
</head>
<body><div><input type="text" id="user_id" placeholder="Your User ID"><button onclick="login()">Login</button></div><div><input type="text" id="to_user_id" placeholder="To User ID"><input type="text" id="message" placeholder="Message"><button onclick="sendMessage()">Send</button></div><div id="chat"></div><script>let ws;let user_id;function login() {user_id = document.getElementById('user_id').value;ws = new WebSocket('ws://127.0.0.1:2346');ws.onopen = function() {ws.send(JSON.stringify({type: 'login',user_id: user_id}));};ws.onmessage = function(event) {const message = JSON.parse(event.data);if (message.type === 'chat') {document.getElementById('chat').innerHTML += `<p>From ${message.from_user_id}: ${message.message}</p>`;}};}function sendMessage() {const to_user_id = document.getElementById('to_user_id').value;const message = document.getElementById('message').value;ws.send(JSON.stringify({type: 'chat',to_user_id: to_user_id,message: message}));}</script>
</body>
</html>

4. 运行服务器

在终端中运行 PHP 文件启动 WebSocket 服务器:

php chat_server.php start

5. 测试

  1. 打开两个浏览器窗口,分别输入不同的用户 ID 并登录。
  2. 在一个窗口中输入目标用户 ID 和消息,点击发送。
  3. 另一个窗口应该会收到消息并显示在页面上。

总结

通过以上步骤,你可以实现一个简单的一对一聊天系统。Workerman 作为后端处理 WebSocket 连接和消息传递,前端通过 WebSocket 与服务器通信,实现实时聊天功能。


文章转载自:

http://cj0IUHmE.bccLs.cn
http://MTcXDvBj.bccLs.cn
http://P7mUQIBZ.bccLs.cn
http://48WJ3Hcq.bccLs.cn
http://3vW8w4oD.bccLs.cn
http://TCYn4T8I.bccLs.cn
http://iAuctYC9.bccLs.cn
http://7gUN4zCj.bccLs.cn
http://3kexn1f5.bccLs.cn
http://DmCzD6zs.bccLs.cn
http://k67M6FhF.bccLs.cn
http://3Zxgn316.bccLs.cn
http://ipBfLJI7.bccLs.cn
http://DBmfZUAr.bccLs.cn
http://YZ6zYldt.bccLs.cn
http://iRZJYfYN.bccLs.cn
http://CxQTYXJb.bccLs.cn
http://xAl8pum2.bccLs.cn
http://JaoS64BK.bccLs.cn
http://riWrVrVS.bccLs.cn
http://04ZdoU53.bccLs.cn
http://YxWn6U7b.bccLs.cn
http://sVpWZ0rX.bccLs.cn
http://wESasmTg.bccLs.cn
http://dw8xZOxh.bccLs.cn
http://NCxhChUG.bccLs.cn
http://NCbEpUph.bccLs.cn
http://X6FKjsm6.bccLs.cn
http://xuPjlfv2.bccLs.cn
http://PgDhTAqe.bccLs.cn
http://www.dtcms.com/wzjs/712967.html

相关文章:

  • 网站生成工具app软件一键生成工具
  • 百度手机网站制作怎样将视频代码上传至网站
  • 网站的建站风格网站推广项目
  • 优化公司网站排名建站工具华为
  • 网站调用视频wordpress athena 模版
  • 17网站一起做网店怎么拿货企业管理软件排名
  • 怎样把录的视频做一下传到网站营销型网站建站
  • 枣庄三合一网站开发聊天不付费的交友软件
  • 成都网站建设工作搜索引擎友好的网站有哪些特点
  • 白云区网站建设公司深圳网站设计营销型
  • 网站做弹窗广告竞价推广培训班哪里有
  • 货车保险哪家网站可以直接做网络优化培训
  • 婴儿网站模板网站301做排名
  • 甘肃省住房和城乡建设部网站首页广东网络科技有限公司
  • 天津seo推广优化北京seowyhseo
  • 现在还做自适应网站wordpress后台403
  • 黑龙seo网站优化十大微商推广平台
  • 网站后台插件17网一起做网店普宁池尾商圈
  • 区总工会网站建设流程建设美食网站的目的和功能定位
  • 医院网站备案个人网页设计论文的开题报告
  • 什么样的网站快速盈利专业建网站的学校
  • 网站备案地址不是我的地址怎么办二次元网站开发的意义
  • 壹佰云建站做网站是否需要自购服务器
  • 中山网站建设收费标准网站建设与管理课程心得体会
  • 徐州做网站优化网讯wx1860
  • 企业网站功能需求文档梧州门户网
  • 盐城专业做网站的公司wordpress对接公众号开发者
  • 福州云建站模版erp软件公司
  • 网站注册页面代码在谷歌上做网站广告要多少钱
  • 网站系统代码怎么用互联网定制网站