คุณสามารถใช้ socket.io และ engine.io ในโปรแกรมขนาดเล็กของ WeChat
websocket ของแอปเพล็ต WeChat ได้รับการห่อหุ้มหนึ่งครั้ง ส่งผลให้แพ็คเกจไคลเอนต์ socket.io หรือ engine.io ไม่สามารถใช้งานได้โดยตรง ตามโปรเจ็กต์ engine.io-client โปรเจ็กต์นี้ใช้เลเยอร์การขนส่งของ wxwebsocket เช่นนั้น สามารถใช้ในแอปเพล็ตได้ ใช้คุณสมบัติทั้งหมดของ socket.io
หมายเหตุ: แพ็คเกจที่คอมไพล์แล้วสามารถใช้ได้ในโปรแกรมมินิ WeChat เท่านั้น
$ git clone https://github.com/wujjpp/socket.io.xcx.git
$ cd socket.io.xcx
$ npm install
$ npm run serve
หมายเหตุ: หากต้องการรันโปรแกรมทดสอบ โปรดเปิด "สภาพแวดล้อมการพัฒนาไม่ตรวจสอบชื่อโดเมนที่ร้องขอและเวอร์ชัน TLS"
คัดลอก dist/socket.io.xcx.min.js ไปยังซอร์สโค้ดมินิโปรแกรมของคุณแล้วนำไปใช้โดยตรง สำหรับรายละเอียด โปรดดูตัวอย่าง/แอป
อินสแตนซ์นี้จะส่งสตริง hello
ไปยังเซิร์ฟเวอร์ผ่านข้อความที่ส่งออก หลังจากได้รับแล้ว เซิร์ฟเวอร์จะส่งข้อความไปยังไคลเอนต์
ลูกค้า -> เซิร์ฟเวอร์: สวัสดี
เซิร์ฟเวอร์ -> ไคลเอนต์: 'สวัสดีชาวโลก'
~/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'
} ) ;
} ) ;
} ) ;
ทำด้วย ♥ โดย Wu Jian Ping