wokerman 上在线聊天室本地实现

时间:2021-02-17 10:07:32

workerman上给的chat例子在win下实现过程

1、html代码

  1. <html>  
  2. <meta charset="UTF-8">  
  3. <body>  
  4.     <div id='tips'></div>  
  5.     <ul id="msg">  
  6.           
  7.     </ul>  
  8.     <input type="text" id ="say" />   
  9.     <input id="submit" onclick="chat()" type="submit">  
  10. </body>  
  11. <script type="text/javascript" src="jquery-2.0.0.min.js" ></script>  
  12. <script>  
  13.     var ws;  
  14.     $(function(){  
  15.         ws = new WebSocket("ws://192.168.10.249:2347");  
  16.         ws.onopen = function() {  
  17.             $('#tips').html('连接服务器成功!');  
  18.         };  
  19.     })  
  20.     function chat(){  
  21.         var txt = $('#say').val();  
  22.         if(txt == ''){  
  23.             return false;  
  24.         }  
  25.         ws.send(txt);  
  26.         $('#say').val('');  
  27.         ws.onmessage = function(e) {  
  28.             $('#msg').append('<li>'+e.data+'</li>');  
  29.         };  
  30.     }  
  31.       
  32. </script>  
  33.   
  34. </html>  

  35. 2、php代码

  36. [php] view plain copy
    1. <?php  
    2. use Workerman\Worker;  
    3. require_once '../workerman/Autoloader.php';  
    4.   
    5. $global_uid = 0;  
    6.   
    7. function handle_connection($connection)  
    8. {  
    9.     global $text_worker$global_uid;  
    10.   
    11.     $connection->uid = ++$global_uid;  
    12. }  
    13.   
    14.   
    15. function handle_message($connection$data)  
    16. {  
    17.     global $text_worker;  
    18.     foreach($text_worker->connections as $conn)  
    19.     {  
    20.             $conn->send("user[{$connection->uid}]: $data ");  
    21.         }  
    22. }  
    23.   
    24.   
    25. function handle_close($connection)  
    26. {  
    27.     global $text_worker;  
    28.     foreach($text_worker->connections as $conn)  
    29.     {  
    30.             $conn->send("user[{$connection->uid}] logout");  
    31.         }  
    32. }  
    33.   
    34.   
    35. $text_worker = new Worker("websocket://0.0.0.0:2347");  
    36.   
    37. $text_worker->count = 1;  
    38.   
    39. $text_worker->onConnect = 'handle_connection';  
    40. $text_worker->onMessage = 'handle_message';  
    41. $text_worker->onClose = 'handle_close';  
    42.   
    43. Worker::runAll();  

  37. 3、在cmd 命令行运行index.PHP

      首先,添加php在环境变量;在cd切换index.php文件所在目录  

    在php index.php 运行,窗口不能关闭


    在浏览器打开多个窗口测试