使用workerman做一个简易的聊天室

1.先下载项目吧

用composer命令直接下就OK,没有composer的百度搜一下安装即可。

composer require workerman/workerman

或者是GitHub也可以

git clone https://github.com/walkor/Workerman

在这里插入图片描述
这个就是下载下来的了,直接放在项目的文件夹下面即可。

2.开始写代码

在项目的目录下新建一个文件,像这样
在这里插入图片描述
下面是chat.php的代码

use Workerman\Worker;
require_once "Workerman/Autoloader.php";
//简易聊天室
$global_uids = 0;
//一共有多少用户

//用户连接事件
function conn($connection)
{
	global $worker,$global_uids;
	$connection->uid = ++$global_uids;
}

//接收用户发送消息事件  然后发送给所有用户
function msg($connection,$data)
{
	global $worker;
	foreach ($worker->connections as $conn) {
		$conn->send("用户{$connection->uid}说:{$data}");
	}
}

//用户退出事件
function close($connection)
{
	global $worker;
	foreach ($worker->connections as $conn) {
		$conn->send("用户{$connection->uid}离开");
	}
}	


$worker = new Worker('websocket://0.0.0.0:2222');
$worker->count = 1;
$worker->onConnect = 'conn';
$worker->onMessage = 'msg';
$worker->onClose   = 'close';

Worker::runAll();

至此,大部分工作就已经完成了。

3.客户端

下面是客户端的代码,比较简单,主要实现功能。

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript" src="jquery.3.5.0.min.js"></script>
	<style type="text/css">
		*{
			padding:20px;
		}
		#box{
			width: 500px;
			height: auto;
			border:1px lightgray solid;
		}
	</style>
</head>
<body>
<div id="box">
	
</div>
<input type="text" placeholder="输入要发送的内容" id="message">
<input type="button" name="" value="发送" id="sub">
<script type="text/javascript">
ws = new WebSocket("ws://127.0.0.1:2222");
ws.onopen = function() {
    $("#box").append("连接成功<br />");
    
};
ws.onmessage = function(e) {
    $("#box").append(e.data + "<br />");
};
$("#sub").click(function(){
	let content = $("#message").val();
	ws.send(content);
});
</script>
</body>
</html>

记得改一下jquery的路径!!

至此,所有代码就都完事了。
这是我的项目的目录结构。
在这里插入图片描述

1.html、2.html、3.html、4.html、5.html的代码都是一样的,复制即可。

4.运行

打开的项目在磁盘中的地址,例如:
在这里插入图片描述
这里输入:cmd
在这里插入图片描述
dos页面出现后,看看是不是在项目的根目录,然后输入命令:

php chat.php start

dos页面不要关掉,不要关掉,不要关掉,否则不运行!!!!

如上图。

直接打开之前弄好的html页面。
在这里插入图片描述
OK。到这里一切都可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值