当前位置:   article > 正文

WebSocket---搭建与使用(手把手)_websocket服务器怎么搭建

websocket服务器怎么搭建

WebSocket是一种在客户端和服务器之间进行实时双向通信的协议。与传统的HTTP请求-响应模式不同,WebSocket允许服务器主动向客户端发送消息,而不需要客户端发起请求。这种实时通信的特性使得WebSocket非常适合于需要实时更新数据的应用,如聊天室、实时游戏、股票市场等。WebSocket协议基于TCP协议,使用了类似HTTP的握手过程进行连接建立,并定义了一种简单的消息格式进行数据传输。同时,WebSocket也提供了一些高级特性,如心跳机制、消息压缩等,来增强通信的可靠性和效率。

服务端

本地搭建

windows系统

php

一:安装cygwin :在Windows上获得Linux的感觉

1.1 打开安装包:setup-x86_64.exe,点击"下一页"

1.2 选择第一种方式,点击"下一页"

1.3 选择安装目录(本欧电脑只有C !!!),点击"下一页"

1.4 选择本地软件包安装目录(可自建),点击"下一页"

1.5 选择直接连接,点击"下一页"

1.6 选择https://mirrors.163.com,点击"下一页"

1.7 选择要安装的组件,点击"下一页"

 注意:默认为跳过==不安装,需要选择版本才会安装,漏装的可以再次打开setup-x86_64.exe

  1. //软件包 版本
  2. automake1.10 1.10.3-3
  3. gcc-g++ 11.4.0-1
  4. gdb 12.1-1
  5. libpcre2-devel 10.42-1
  6. pcre 8.45-1
  7. pcre2 10.42-1
  8. php-devel 7.3.7-2
  9. wget 1.21.4-1

1.8 (演示用小欧重装了下!!!),点击"下一页"

1.9 最好都两个都选择,点击"完成"

二:查看是否安装成功

2.1 点击打开桌面cygwin

2.2 输入 cygcheck -c cygwin

三:下载&安装swoole扩展

3.1 查看php版本,输入 php -v 

3.2 下载swoole

注意:php8以上下载5.0以上版本

3.3 解压压缩包到cygwin安装目录下的home文件夹下

3.4 cygwin面板进入home并执行phpize追加扩展

3.5 配置构建和安装环境 ./configure

3.6 make构建 (时间较长)

3.7 make test 对编译结果进行测试

3.8 make install 安装

3.9 手动打开.../etc/php.ini 文件

3.10 拉到文件最底添加 extension=swoole.so

3.11 面板输入 php -m 查看扩展是否安装成功

四:服务端文件编辑

4.1 swoole文档

4.2 新建serve文件夹(可自定义文件夹)

4.3 打开serve文件夹并创建socket.php

socket.php

  1. <?php
  2. //创建WebSocket Server对象,监听0.0.0.0:9502端口,可自定义。
  3. $ws = new Swoole\WebSocket\Server('0.0.0.0', 9502);
  4. //监听WebSocket连接打开事件。
  5. $ws->on('Open', function ($ws, $request) {
  6. echo "{$request->fd} 用户接入";
  7. $ws->push($request->fd, "hello, welcome\n");
  8. });
  9. //监听WebSocket消息事件。
  10. $ws->on('Message', function ($ws, $frame) {
  11. echo "Message: {$frame->data}\n";
  12. $ws->push($frame->fd, "server: {$frame->data}");
  13. });
  14. //监听WebSocket连接关闭事件。
  15. $ws->on('Close', function ($ws, $fd) {
  16. echo "client-{$fd} is closed\n";
  17. });
  18. $ws->start();
  19. ?>

4.4 运行 socket.php

五:测试

5.1 打开浏览器 按F12  

  1. var wsServer = 'ws://127.0.0.1:9502';
  2. var websocket = new WebSocket(wsServer);
  3. websocket.onopen = function (evt) {
  4. console.log("Connected to WebSocket server.");
  5. };
  6. websocket.onclose = function (evt) {
  7. console.log("Disconnected");
  8. };
  9. websocket.onmessage = function (evt) {
  10. console.log('Retrieved data from server: ' + evt.data);
  11. };
  12. websocket.onerror = function (evt, e) {
  13. console.log('Error occured: ' + evt.data);
  14. };

 5.2 正确状态

浏览器

cygwin面板

本篇干货教程将会跟着小欧的经验不断更新哦,各位领导赏个三连吧!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/634560
推荐阅读
相关标签
  

闽ICP备14008679号