workerman实现简单弹幕

本文介绍了一个使用PHP和WebSocket技术实现的简单实时聊天系统。该系统包括后端服务器和前端HTML页面,支持用户在线状态通知、消息广播等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. PHP页面
  2. <?php  
  3. use Workerman\Worker;  
  4. require_once '../Autoloader.php';//注意 这里要看你的workerman里的这个文件在哪 然后在进行修改  
  5.   
  6. $global_uid = 0;  
  7.   
  8. // 当客户端连上来时分配uid,并保存连接,并通知所有客户端  
  9. function handle_connection($connection) {  
  10.     global $text_worker$global_uid;  
  11.     // 为这个链接分配一个uid  
  12.     $connection->uid = ++$global_uid;  
  13.     foreach ($text_worker->connections as $conn) {  
  14.         $conn->send("user[{$connection->uid}] online");  
  15.     }  
  16. }  
  17.   
  18. // 当客户端发送消息过来时,转发给所有人  
  19. function handle_message($connection$data) {  
  20.     global $text_worker;  
  21.     foreach ($text_worker->connections as $conn) {  
  22.         $conn->send("user[{$connection->uid}] said: $data");  
  23.     }  
  24. }  
  25.   
  26. // 当客户端断开时,广播给所有客户端  
  27. function handle_close($connection) {  
  28.     global $text_worker;  
  29.     foreach ($text_worker->connections as $conn) {  
  30.         $conn->send("user[{$connection->uid}] logout");  
  31.     }  
  32. }  
  33.   
  34. $text_worker = new Worker("websocket://0.0.0.0:2347");  
  35.   
  36. $text_worker->count = 1;  
  37.   
  38. $text_worker->onConnect = 'handle_connection';  
  39. $text_worker->onMessage = 'handle_message';  
  40. $text_worker->onClose = 'handle_close';  
  41.   
  42. Worker::runAll(); 

html页面

<!DOCTYPE html>  

  1. <html lang="en">  
    <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> 
  2.  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值