首页 > 编程语言 >Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1

Unity(支持WebGL)+PHP(Workerman的Gateway)用Websocket协议实现匹配对战(摇骰子为例)1

时间:2023-01-05 19:12:11浏览次数:56  
标签:Websocket 为例 Windows WebGL Unity 发布 PHP 客户端

目录


  • 现在流行Unity开发小游戏(WebGL),但是很多人苦于WebGL网络层不支持TCP/IP(C# Socket),于是我用PHP流行框架Workerman写了一个Websocket作为网络层的双端项目分享给大家。
  • 此双端项目,全程在Windows工作,学习可达性非常高

服务端PHP(Windows下演示)

安装PHP

  1. 去官网 https://windows.php.net/download 下载一个Thread Safe X64/X86版本的zip
  2. 解压zip
  3. 设置环境变量为解压后的路径

遇到问题,可以去 https://www.workerman.net/windows 网站,查看详细步骤

启动服务器

双击工程里的 server\GatewayWorker\start_for_win.bat 文件
在这里插入图片描述

结束服务器

  1. 在启动服务器的“Windows 命令处理程序”按2次键盘 Ctrl+C
  2. 输入Y
  3. 回车键
    结束服务器

切勿“结束服务器”,因为后面需要连接服务器。这里只是陈述如何结束服务器的步骤

客户端Unity(版本Unity2021.3.5f1)

如果在Editor运行,需要关心入口场景为:SceneLaunch.unity

1.发布Windows客户端

  1. 发布Windows客户端
    1.1 打开Addressables窗口(如下图点击菜单)
    在这里插入图片描述
    1.2 打包Bundle资源(如下图点击菜单)
    在这里插入图片描述
    1.3 构建可执行文件(如下图点击菜单+按钮)
    在这里插入图片描述
    1.4 双击构建成功的可执行文件Dice.exe,即可运行
    在这里插入图片描述

ws/wss(不发布小游戏,请忽略此点)

微信小游戏测试阶段是支持ws协议,但是上线需要改为wss协议。ws改wss的步骤:

  1. 客户端修改:client\Assets\Scripts\UI\Window\UILogin\UILogin.Login.cs
WebSocketClient.Instance.Connect("ws://" + ip + ":" + port, onConnect2Login);

改成

var domainName = "请自行申请域名";
WebSocketClient.Instance.Connect("wss://"+domainName, onConnect2Login);
  1. 服务端修改,请跳如下链接:
    https://www.workerman.net/doc/workerman/faq/secure-websocket-server.html

演示

运行2~8个可执行文件Dice.exe,即可开始演示
请添加图片描述

工程地址

https://gitee.com/chasing2moro/dicews

至此教程已经结束。

扩展

发布其他端

1. 发布WebGL

  1. 发布WebGL
    1.1 切换WebGL平台
    在这里插入图片描述
    1.2 修改Default Local Group配置,如下图
    在这里插入图片描述

1.3 打开Addressables窗口(如下图点击菜单)
在这里插入图片描述
1.4 打包Bundle资源(如下图点击菜单)
在这里插入图片描述
1.5 构建WebGL
在这里插入图片描述
1.6 选择Unity工程同级目录ServerData导出
在这里插入图片描述
1.7 将IIS物理路径设置为ServerData
在这里插入图片描述
1.8 设置MIME
在这里插入图片描述
把下面的MIME类型填充进上面的MIME弹窗

文件扩展名 MIME类型
.data application/octet-stream
.bundle application/octet-stream
.unityweb application/octet-stream

如果运行期间发现MIME不全,自行添加对应缺失的MIME

1.9 运行网页。地址为 http://localhost (也可自行在网页上输入此地址运行)
在这里插入图片描述

2. 发布Android客户端(支持,参照发布Windows客户端流程)

3. 发布iOS客户端(支持,参照发布Windows客户端流程)

联系作者

email:[email protected]

标签:Websocket,为例,Windows,WebGL,Unity,发布,PHP,客户端
From: https://www.cnblogs.com/lbxnba/p/17028649.html

相关文章

  • 如何使用Burp Suite测试WebSocket
    BurpSuite具有测试WebSocket的能力,可以实时拦截和修改WebSocket消息。遗憾的是,Burp缺乏针对WebSockets的Repeater、Scanner或Intruder功能。但在新版BurpSuite中,增加了针对......
  • 如何使用Fiddler测试WebSocket
    一Fiddler本身可以捕获WebSocket流量,但是无法操纵WebSocket流量。1、启动fiddler,在主session列表中找到带ws图标的WebSocket请求。2、双击ws请求,Fiddler界面右边就会出......
  • spring整合Mybatis | Postgresql为例
    1.创建配置文件jdbc.propertiesjdbc.url=jdbc:postgresql://localhost:5432/postgis_hy?useSSL=falsejdbc.username=postgresjdbc.password=arcgis2.相关依赖<de......
  • NFC 读取卡信息(流程示例2),以公交卡为例
    公交卡的结构1.SELECT选择MF(可不选)可以不选默认也会被选中,但是可以通过这个指令获得文件控制信息FCI发送00A40000023F00接收6f12840e315055422e5359......
  • 011websocket代理
    一、安装haproxysudoadd-apt-repositoryppa:vbernat/haproxy-2.6-ysudoaptinstallhaproxy-ysudosystemctlstatushaproxysudosystemctlenablehaproxycd......
  • Uncaught (in promise) Neo4jError: WebSocket connection failure. Due to security
    问题使用​​vue-neo4j​​​连接​​neo4j​​数据库时,控制栏出现以下问题:neo4j版本为4.4.5​​Uncaught(inpromise)Neo4jError:WebSocketconnectionfailure.Dueto......
  • java实现websocket的五种方式
    1.前言2.第一种使用Java原生代码实现websocket2.1.首先在项目中引入依赖2.2.创建WebsocketServer类2.3.启动SocketServer2.4.测试websocketserver3.使......
  • C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
    阅读目录1.HtmlAgilityPack简介2.XPath技术介绍与使用3.采集天气网站案例4.资源第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一......
  • 以华为云ECS为例,解读中小企业为何纷纷转投弹性云服务器
      随着企业信息化进程的不断推进,弹性云服务器ECS的需求量开始不断增加,如今中小企业为了能够更好的控制成本和管理业务,也开始纷纷转投弹性云服务器ECS。今天我们就以业内知......
  • Nginx 代理webSocket时60s自动断开, 保持长连接
    利用nginx代理websocket的时候,发现客户端和服务器握手成功后,如果在60s时间内没有数据交互,连接就会自动断开,如下图:为了保持长连接,可以采取来两种方式.1.nginx.conf文件里locati......