微信小游戲下socket.io的使用


參考:

微信小游戲: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,表示連接成功

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM