微信小游戏下socket.io的使用
参考:
一 在微信小游戏 中使用socket.io报错
因为项目需求,后端要使用nodejs简单搭建一个服务器,通讯用json格式。
使用Egret提供的socket.io库
https://github.com/egret-labs/egret-game-library
如果直接使用这个socket.io库,在微信小游戏中会报错。
例如io is not defined , socket.io.js中有用到document等等。于是网上找了找别人的解决方法。
二 适配微信小游戏的weapp.socket.io
1. 下载weapp.socket.io
https://github.com/weapp-socketio/weapp.socket.io
2. 配置weapp.socket.io
2.1 下载解压后放在微信项目library下

2.2 在game.js中引入weapp.socket.io.js
在微信小游戏项目在找到game.js,并添加如下代码
window.io = require("./library/weapp.socket.io.js");

2.3 在Egret项目任一.ts文件下定义一个全局io (我是定义在自己的Socket工具类ClientSocket.ts中)
declare let io: any;
declare interface Window {
io: any
}
三 使用weapp.socket.io
3.1 本地搭建一个服务器 (具体nodejs如何搭建服务器这里就不写了)
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.send('<h1>Welcome Realtime Server</h1>');
});
http.listen(3004, function(){
console.log('listening on *:3004');
});
io.on('connection', function(socket){
console.log('a user connected');
});
3.2 客户端代码
客户端连接本地服务器127.0.0.1:3004,连接成功后输出connect success。
let socket;
socket = io.connect("http://127.0.0.1:3004",{ reconnection: false,'force new connection': true});
socket.on('connect',function() {
egret.log("connect success");
});
微信开发者工具输出success,表示连接成功

微信小游戏下socket.io的使用的更多相关文章
- 使用Laya引擎开发微信小游戏(下)
本文由云+社区发表 6. 动画 6.1 创建伞兵对象 在src目录下创建一个新目录role,用来存放游戏中角色. 在role里创建一个伞兵Soldier.ts对象文件. module role{ ex ...
- .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块
.Net Core ORM选择之路,哪个才适合你 因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...
- 【转】微信小游戏接入Fundebug监控
在SegmentFault上看到Fundebug上线小游戏监控,刚好最近开始玩微信小游戏,于是尝试接入试了一下. 接入方法 创建项目的时候选择左下角的微信小游戏图标. 点击继续进入接入插件页面. 第三 ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
- 微信小游戏爆款秘笈 数据库MongoDB攻略篇
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB 发表于云+社区专栏 随着微信小游戏的爆发,越来越多开发者关注到MongoDB与小游戏业务的契合度. ...
- Egret 生成 自带EUI 的微信小游戏 踩坑!
1. 首先,再次被网上一大堆屎一样的资料搞得浪费了我一天时间.各种坑. 2. 本文先讲一种正确的方式,然后再列举坑. 去www.egret.com下载最新的引擎,我的最新版本是5.2.2. 然后就会被 ...
- 使用Laya引擎开发微信小游戏(上)
本文由云+社区发表 使用一个简单的游戏开发示例,由浅入深,介绍了如何用Laya引擎开发微信小游戏. 作者:马晓东,腾讯前端高级工程师. 微信小游戏的推出也快一年时间了,在IEG的游戏运营活动中,也出现 ...
- 微信小游戏 RES版本控制+缓存策略 (resplugin和ResSplitPlugin插件使用)
参考: RES版本控制 使用 AssetsManager 灵活定制微信小游戏的缓存策略 一.我们的目标 目标就是让玩家快速进入游戏,然后根据游戏的进度加载相应的资源,并可对资源进行版本控制.本地缓存. ...
- 微信小游戏的本地缓存和清除的使用 (text.js image.js file-util.js)
参考: 微信小游戏,文件系统 UpdateManager-小游戏 一.Egret提供的本地缓存工具类( 备注:新版本进行了修改,并增加了sound.js等) 在微信小游戏项目中,Egret提供了fil ...
随机推荐
- PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法
PL/SQL查询时,如果Number(17)以上的大数,会显示为科学计数法 解决方法: TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中N ...
- C# Draw multiple Lines
I would make a Line class having start and end point of the line in struct Point and make list of th ...
- drawRect中抗锯齿
在开始之前,我们需要创建一个DrawRectView 其初始代码为 // // DrawRectView.h // CGContextSetShouldAntialias // // Created ...
- C# ExecutionContext 实现
网上关于ExecutionContext的说明比较少,我们来看看微软的描述吧, 名称 说明 Capture() 捕获从当前线程的执行上下文. CreateCopy() 创建当前执行上下文的副本. ...
- ninja-build环境安装
ninja是一个小型构建系统,专注于速度,和常用的make类似,有一些软件就是基于ninja编译构建的,比如clickhouse数据库就需要依赖ninja,因为最近在研究clickhouse,需要依赖 ...
- (2):Mysql 查看、创建、更改 数据库和表
一.一探究竟 我想看看有多少个数据库,有多少个表,以及表里有啥东西.那么你可以这样: 图形界面: 命令: 查看多少个数据库:注意 后面带s #查看 SHOW DATABASES; #查看表 USE b ...
- Javascript 函数声明、函数表达式与匿名函数自执行表达式
函数表达式(Function Expression)注:将函数定义为表达式语句(通常是变量赋值)的一部分 //func() 错误 var func = function () { } //func() ...
- webstorm激活方法webstorm注册码 jetbrains激活
安装完成后,打开 WebStorm, 在打开的 License Activation 窗口中选择 License server. 在输入框输入网址即可: http://idea.codebeta.cn ...
- mybatis整合hikariCP(非spring)
mybatis整合hikariCP(非spring) 一.配置hikariCP典型的配置文件hikariPool.properties jdbcUrl=jdbc:mysql://localhost:3 ...
- Tomcat热部署的三种方式
原文地址:https://blog.csdn.net/nlwangxin/article/details/49734659热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB ...