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

相关文章

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Spring Boot 常用注解详解与使用最佳实践建议

《SpringBoot常用注解详解与使用最佳实践建议》:本文主要介绍SpringBoot常用注解详解与使用最佳实践建议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、核心启动注解1. @SpringBootApplication2. @EnableAutoConfi

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件