基于workerman如何实现弹幕的效果
Admin 2022-07-22 群英技术资讯 279 次浏览
php代码:
<?php use Workerman\Worker; require_once '../Autoloader.php';//注意 这里要看你的workerman里的这个文件在哪 然后在进行修改 $global_uid = 0; // 当客户端连上来时分配uid,并保存连接,并通知所有客户端 function handle_connection($connection) { global $text_worker, $global_uid; // 为这个链接分配一个uid $connection->uid = ++$global_uid; foreach ($text_worker->connections as $conn) { $conn->send("user[{$connection->uid}] online"); } } // 当客户端发送消息过来时,转发给所有人 function handle_message($connection, $data) { global $text_worker; foreach ($text_worker->connections as $conn) { $conn->send("user[{$connection->uid}] said: $data"); } } // 当客户端断开时,广播给所有客户端 function handle_close($connection) { global $text_worker; foreach ($text_worker->connections as $conn) { $conn->send("user[{$connection->uid}] logout"); } } $text_worker = new Worker("websocket://0.0.0.0:2347"); $text_worker->count = 1; $text_worker->onConnect = 'handle_connection'; $text_worker->onMessage = 'handle_message'; $text_worker->onClose = 'handle_close'; Worker::runAll();
HTML代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Simple Chat</title> </head> <body> <center> <h1>Simple Chat</h1> <input type="text" id="msg"> <button type="button" id="send">send</button> <div id="content" style="width:200px;height:200px;border:1px solid red"> 假装在播放视频 <marquee behavior="" direction=""></marquee> </div> </center> </body> <script type="text/javascript"> window.onload = function () { var ws = new WebSocket("ws://127.0.0.1:2347"); document.getElementById("send").onclick = function () { var msg = document.getElementById("msg").value; ws.send(msg); }; ws.onopen = function () { console.log("连接成功"); // ws.send('raid'); }; ws.onmessage = function (e) { document.getElementById("content").innerHTML += '<marquee behavior="" direction="">' + e.data + '</marquee>'; }; }; </script> </html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
首先自定义Command,在命令行下执行php artisan swoole start,开启Swoole服务。然后自定义handler,再利用connection_info函数获取客户端的IP地址和端口,用fsockopen直接发送数据。
下面由phpstorm教程栏目给大家介绍phpstorm 突然打开不了的解决方法,希望对需要的朋友有所帮助!今天早上,phpstorm突然打开不了了,明明上周使用的挺好的!没办法,只能重新安装了!
本文主要给大家分享的是Laravel数据库读写分离的方法,Laravel数据库读写分离配置范例如下,下文还有代码分享,需要的朋友可以参考了解看看,接下来我们就直接看代码:
这篇文章主要介绍了php安全攻防如何利用文件上传漏洞与绕过技巧详解,有需要的朋友可以参考借鉴下,希望大家多多进步早日升职加薪
在本篇文章里小编给大家整理的是一篇关于php png失真的原因及解决办法,有需要的朋友们可以跟着学习参考下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008