H5实践(2)- H5辅助开发环境搭建

2024-09-02 22:48

本文主要是介绍H5实践(2)- H5辅助开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

H5游戏开发上的先天不足

做H5游戏开发时,通常都会遇到些问题。

这里总结下本人开发过程中遇到的:

  • 开tomcat、nginx、apache之类的web服务器,提供网址
  • 需要支持webpack、browserify之类的打包工具,使之能require模块编程。可以使用node.js库。
  • 使用gulp、webpack-dev-server之类的热更调试服务器
  • websocket到tcp服务器的代理。方便网页直接访问tcp服务器
  • 解决浏览器跨域问题

下面,对于每小点,依次详细解释之。

支持Node.js库的H5编程

很久以前的JS编程是不支持模块化编程的。

即类似 requiremodule之类的概念是没有的。

现在主流的,都会使用npm、nodejs。

为了在网页上可以使用require,则必须使用 webpack、browserify之类的打包工具。

使js文件代码,转化为页面能识别的js语法。

本系列使用的webpack打包工具。

所有辅助工具都是围绕webpack,来做集成的。

热更新(自动打包、自动刷新页面)

js的热更新网上搜下一大箩。

然而绝大多数都是不能简单使用的。因为需要和webpack做配合。

总结下,需要做下面的几件事:

  • 能监视js、html、css等文件变化
  • 能触发变化事件,并重新使用webpack打包
  • 能通知页面自动刷新

因此,最终,通过集成下面的内容,实现了上述功能:

  • express
  • gulp
  • gulp-webpack
  • gup-connect

主要代码示例:

webdevjs.start = function (configfile) {if (!configfile) {configfile = './webpack.config.js';}configfile = process.cwd() + '/' + configfile;var config = require(configfile);gulp.task('html', function () {gulp.src(config.devServer.watch_html).pipe(gulpConnect.reload());});gulp.task('webpack', function () {gulpWebpack(require(configfile)).pipe(gulp.dest('.')).pipe(gulpConnect.reload());});gulp.task('default', function () {webdevjs.runweb(config);gulpConnect.server({livereload: true,port: config.devServer.port,middleware: function (connect, opt) {return [httpProxyMiddleware('/', {target: 'http://localhost:' + String(config.devServer.port + 1),changeOrigin: true})];}});gulp.watch(config.devServer.watch_html, ['html']);gulp.watch(config.devServer.watch_js, ['webpack']);});gulp.start();
};

TCP服务代理

H5网页现在做长连接的有2种方式:

  • 通过flash对象来做tcp长连接
  • 使用websocket来做基于websocket协议的长连接

由于flash as3编程,在手机端不是很流行。因此现在主流使用websocket。

因此,H5应用网络模块通常2种情况:

  1. 页面WebSocket => 支持websocket协议的游戏服务器
  2. 页面WebSocket => TCP代理服务器 => TCP协议游戏服务器

正式外网服务必定使用1。
其他用途,可1、可2。

浏览器跨域问题

正式情况不应该出现浏览器跨域问题。

即,游戏服务器必须提供可跨域的方式。如 支持 GET 方式请求,则浏览器有方法绕过跨域问题。

否则,则只能在浏览器端通过增加些启动参数,关闭浏览器某些安全功能。来绕过跨域问题。

通用的开发用web服务器

为了便利开发,可以把上述这些问题,集成到一个通用的辅助web服务器中。

可以参考本人github上的项目webdev。网址:

https://github.com/fananchong/webdev

这篇关于H5实践(2)- H5辅助开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131288

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺