Anda dapat menggunakan socket.io dan engine.io di program mini WeChat
Websocket dari applet WeChat telah dienkapsulasi satu kali, mengakibatkan paket klien socket.io atau engine.io tidak dapat digunakan secara langsung. Berdasarkan proyek engine.io-client, proyek ini mengimplementasikan lapisan transport wxwebsocket sehingga itu dapat digunakan di applet. Gunakan semua fitur socket.io.
Catatan: Paket yang dikompilasi hanya dapat digunakan di program mini WeChat
$ git clone https://github.com/wujjpp/socket.io.xcx.git
$ cd socket.io.xcx
$ npm install
$ npm run serve
Catatan: Untuk menjalankan program pengujian, harap aktifkan "Lingkungan pengembangan tidak memverifikasi nama domain dan versi TLS yang diminta"
Salin dist/socket.io.xcx.min.js ke kode sumber program mini Anda dan gunakan secara langsung
Contoh ini mengirimkan string hello
ke server melalui pesan emit. Setelah menerimanya, server mengirimkan pesan ke klien.
klien -> server: halo
server -> klien: 'halo dunia'
~/examples/app/pages/index/index.js
// 导入socket.io小程序版包
import io from '../../socket.io.xcx.min'
// 使用IO创建socket实例,本实例使用本地socket.io服务器, 请根据根据实际情况修改IP
let socket = io ( 'ws://127.0.0.1:3000' )
function _setup ( ) {
var self = this ;
socket . on ( 'connect' , function ( ) {
console . log ( '连上了' ) ;
} ) ;
socket . on ( 'message' , function ( data ) {
self . data . messages . push ( data . message ) ;
self . setData ( {
messages : self . data . messages
} )
} ) ;
socket . on ( 'disconnect' , function ( ) {
console . log ( 'you have been disconnected' ) ;
} ) ;
}
Page ( {
data : {
messages : [ ]
} ,
onLoad : function ( ) {
_setup . apply ( this ) ;
} ,
send : function ( ) {
socket . emit ( 'message' , 'hello' ) ;
}
} )
~/examples/server/app.js
// Setup basic express server
var express = require ( 'express' ) ;
var app = express ( ) ;
var server = require ( 'http' ) . createServer ( app ) ;
var io = require ( 'socket.io' ) ( server ) ;
var port = process . env . PORT || 3000 ;
server . listen ( port , function ( ) {
console . log ( 'Server listening at port %d' , port ) ;
} ) ;
io . on ( 'connection' , function ( socket ) {
// when the client emits 'message', this listens and executes
socket . on ( 'message' , function ( data ) {
console . log ( 'message from client: ' , data ) ;
io . emit ( 'message' , {
message : data + ' world ' + new Date ( )
} ) ;
} ) ;
// when the user disconnects.. perform this
socket . on ( 'disconnect' , function ( ) {
// echo globally that this client has left
socket . broadcast . emit ( 'user left' , {
message : 'user left'
} ) ;
} ) ;
} ) ;
Dibuat dengan ♥ oleh Wu Jian Ping