• Stars
    star
    340
  • Rank 120,895 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Wafer - 快速构建具备弹性能力的微信小程序

微信小程序客户端腾讯云增强 SDK

Build Status Coverage Status License

本 项目是 Wafer 的组成部分,为小程序客户端开发提供 SDK 支持会话服务和信道服务。

SDK 获取与安装

解决方案客户端 Demo 已经集成并使用最新版的 SDK,需要快速了解的可以从 Demo 开始。

如果需要单独开始,本 SDK 已经发布为 bower 模块,可以直接安装到小程序目录中。

npm install -g bower
bower install wafer-client-sdk

安装之后,就可以使用 require 引用 SDK 模块:

var qcloud = require('./bower_components/wafer-client-sdk/index.js');

会话服务

会话服务让小程序拥有会话管理能力。

登录

登录可以在小程序和服务器之间建立会话,服务器由此可以获取到用户的标识和信息。

var qcloud = require('./bower_components/qcloud-weapp-client-sdk/index.js');

// 设置登录地址
qcloud.setLoginUrl('https://199447.qcloud.la/login');
qcloud.login({
    success: function (userInfo) {
        console.log('登录成功', userInfo);
    },
    fail: function (err) {
        console.log('登录失败', err);
    }
});

本 SDK 需要配合云端 SDK 才能提供完整会话服务。通过 setLoginUrl 设置登录地址,云服务器在该地址上使用云端 SDK 处理登录请求。

setLoginUrl 方法设置登录地址之后会一直有效,因此你可以在微信小程序启动时设置。

登录成功后,可以获取到当前微信用户的基本信息。

请求

如果希望小程序的网络请求包含会话,登录之后使用 request 方法进行网络请求即可。

qcloud.request({
    url: 'http://199447.qcloud.la/user',
    success: function (response) {
        console.log(response);
    },
    fail: function (err) {
        console.log(err);
    }
});

如果调用 request 之前还没有登录,则请求不会带有会话。request 方法也支持 login 参数支持在请求之前自动登录。

// 使用 login 参数之前,需要设置登录地址
qcloud.setLoginUrl('https://199447.qcloud.la/login');
qcloud.request({
    login: true,
    url: 'http://199447.qcloud.la/user',
    success: function (response) {
        console.log(response);
    },
    fail: function (err) {
        console.log(err);
    }
});

关于会话服务详细技术说明,请参考 Wiki

信道服务

信道服务小程序支持利用腾讯云的信道资源使用 WebSocket 服务。

// 创建信道,需要给定后台服务地址
var tunnel = this.tunnel = new qcloud.Tunnel('https://199447.qcloud.la/tunnel');

// 监听信道内置消息,包括 connect/close/reconnecting/reconnect/error
tunnel.on('connect', () => console.log('WebSocket 信道已连接'));
tunnel.on('close', () => console.log('WebSocket 信道已断开'));
tunnel.on('reconnecting', () => console.log('WebSocket 信道正在重连...'));
tunnel.on('reconnect', () => console.log('WebSocket 信道重连成功'));
tunnel.on('error', error => console.error('信道发生错误:', error));

// 监听自定义消息(服务器进行推送)
tunnel.on('speak', speak => console.log('收到 speak 消息:', speak));

// 打开信道
tunnel.open();
// 发送消息
tunnel.emit('speak', { word: "hello", who: { nickName: "techird" }});
// 关闭信道
tunnel.close();

信道服务同样需要业务服务器配合云端 SDK 支持,构造信道实例的时候需要提供业务服务器提供的信道服务地址。通过监听信道消息以及自定义消息来通过信道实现业务。

关于信道使用的更完整实例,建议参考客户端 Demo 中的三木聊天室应用源码

关于信道服务详细技术说明,请参考 Wiki

API

setLoginUrl

设置会话服务登录地址。

语法

qcloud.setLoginUrl(loginUrl);

参数

参数         类型 说明
loginUrl string 会话服务登录地址

login

登录,建立微信小程序会话。

语法

qcloud.login(options);

参数

参数         类型 说明
options     PlainObject   会话服务登录地址
options.success () => void 登录成功的回调
options.fail (error) => void 登录失败的回调

request

进行带会话的请求。

语法

qcloud.request(options);

参数

参数         类型 说明
options     PlainObject   会话服务登录地址
options.login bool         是否自动登录以获取会话,默认为 false
options.url   string       必填,要请求的地址
options.data string、object 可选,提交到服务器的数据,会透传到 wx.request 方法中
options.header PlainObject 请求头设置,不允许设置 Referer
options.method string     请求的方法,默认为 GET
options.success (response) => void 登录成功的回调。
  • response.statusCode:请求返回的状态码
  • response.data:请求返回的数据
options.fail (error) => void 登录失败的回调
options.complete () => void 登录完成后回调,无论成功还是失败

Tunnel

表示一个信道。由于小程序的限制,同一时间只能有一个打开的信道。

constructor

语法
var tunnel = new Tunnel(tunnelUrl);

参数

参数         类型 说明
tunnelUrl   String   会话服务登录地址

on

监听信道上的事件。信道上事件包括系统事件和服务器推送消息。

语法
tunnel.on(type, listener);
参数
参数         类型 说明
type       string     监听的事件类型
listener     (message?: any) => void 监听器,具体类型的事件发生时调用监听器。如果是消息,则会有消息内容。
事件
事件 说明
connect 信道连接成功后回调
close 信道关闭后回调
reconnecting 信道发生重连时回调
reconnected 信道重连成功后回调
error 信道发生错误后回调
[message]   信道服务器推送过来的消息类型,如果消息类型和上面内置的时间类型冲突,需要在监听的时候在消息类型前加 @
*           监听所有事件和消息,监听器第一个参数接收到时间或消息类型 

open

打开信道,建立连接。由于小程序的限制,同一时间只能有一个打开的信道。

语法
tunnel.open();

emit

向信道推送消息。

语法
tunnel.emit(type, content);
参数
参数         类型 说明
type       string       要推送的消息的类型
content any 要推送的消息的内容

close

关闭信道

语法
tunnel.close();

LICENSE

MIT

More Repositories

1

qcloud-documents

腾讯云官方文档
HTML
2,469
star
2

wafer

Wafer - 快速构建具备弹性能力的微信小程序
2,170
star
3

TRTCSDK

腾讯云TRTC音视频服务,国内下载镜像:
C++
1,206
star
4

wafer2-startup

Wafer - 腾讯云下一代小程序综合解决方案
JavaScript
1,021
star
5

MLVBSDK

移动直播 SDK,国内下载镜像:
Objective-C
775
star
6

wafer-client-demo

Wafer - 企业级微信小程序全栈方案
JavaScript
507
star
7

wafer2-quickstart

Wafer2 腾讯云一站式小程序解决方案
411
star
8

wafer2-quickstart-nodejs

Wafer2 Node.js 简化版 Demo
JavaScript
362
star
9

cos-js-sdk-v5

腾讯云 COS JS SDK(XML API)
JavaScript
326
star
10

wafer2-node-sdk

Wafer2 SDK for Node.js
JavaScript
270
star
11

wafer-java-server-sdk

Wafer - 企业级微信小程序全栈方案
Java
261
star
12

wafer-php-server-sdk

Wafer - 企业级微信小程序全栈方案
PHP
254
star
13

cos-nodejs-sdk-v5

腾讯云 COS Nodejs SDK(XML API)
JavaScript
231
star
14

wafer2-client-sdk

Wafer client SDK
JavaScript
226
star
15

cos-go-sdk-v5

腾讯云 COS GO SDK(XML API)
Go
201
star
16

wecos

WeCOS——微信小程序 COS 瘦身解决方案
JavaScript
199
star
17

wafer-node-server-demo

Wafer - 企业级微信小程序全栈方案
JavaScript
197
star
18

clb-quic-demo

clb team contribute
Java
196
star
19

qcloud-cos-sts-sdk

QCloud COS STS SDK for Backend Server
Java
192
star
20

wafer2-quickstart-php

Wafer2 PHP 简化版 Demo
PHP
190
star
21

cos-wx-sdk-v5

腾讯云 COS 小程序 SDK(XML API)
JavaScript
188
star
22

cos-php-sdk-v5

cos-php-sdk-v5
PHP
167
star
23

weapp-doc

小程序配置指引、升级方案
165
star
24

TUICallKit

a video calls uikit, include 1v1 calls、group calls etc.
Swift
164
star
25

cos-python-sdk-v5

Python
160
star
26

cos-java-sdk-v5

java sdk for qcloud cos v5 (xml api)
Java
139
star
27

wafer-php-server-demo

Wafer - 企业级微信小程序全栈方案
PHP
138
star
28

wafer-node-server-sdk

Wafer - 企业级微信小程序全栈方案
JavaScript
132
star
29

cosfs

C++
117
star
30

TUIRoomKit

Multi-person Video Conversation uikit, used for various scenarios such as Work Collaboration, Remote Medical, and Online Education.
Java
115
star
31

blog

Blog to share events or technique topics
109
star
32

tencentcloud-exporter

TencentCloud Prometheus Exporter
Go
108
star
33

serverless-demo

demo for serverless
105
star
34

wafer-csharp-server-sdk

Wafer - 企业级微信小程序全栈方案
C#
93
star
35

wecos-ugc-upload-demo

WeCOS-UGC-DEMO资源上传示例
JavaScript
90
star
36

TUILiveRoom

腾讯云TRTC针对直播、语聊、视频通话等推出的低代码解决方案~
Java
84
star
37

scfcli

serverless cli
Python
84
star
38

LiteAVProfessional_Android

84
star
39

TWebLive

Vue
83
star
40

image-java-sdk-v2.0

Java
83
star
41

tsf-simple-demo

Tencent Service Framework Demo
Java
82
star
42

wafer-node-session

Standalone node session middleware for wechat micro application
JavaScript
81
star
43

hadoop-cos

hadoop-cos(CosN文件系统)为Apache Hadoop、Spark以及Tez等大数据计算框架集成提供支持,可以像访问HDFS一样读写存储在腾讯云COS上的数据。同时也支持作为Druid等查询与分析引擎的Deep Storage
Java
75
star
44

wafer2-aai-nodejs

腾讯云小程序解决方案语音识别 Node.js Demo
JavaScript
73
star
45

cos_migrate_tool_v5

Java
67
star
46

TIC

腾讯云互动课堂
C++
65
star
47

coscmd

Python
62
star
48

scf-go-lib

scf go lib
Go
55
star
49

cos-js-sdk-v4

腾讯云 COS JS SDK(JSON API)
JavaScript
50
star
50

cos-cpp-sdk-v5

C++
47
star
51

iot-device-java

IoT Hub & Explorer 设备端 SDK (Java & Android)
Java
45
star
52

imsdk_restapi-php-sdk

IMSDK-PhpServerSDK使用说明 https://www.qcloud.com/doc/product/269/1538
PHP
43
star
53

cos-php-sdk-v4

Php SDK for COS v4
PHP
43
star
54

qcloud-sdk-dotnet

C#
42
star
55

scf-demo-repo

Python
42
star
56

TencentIMFlutterDemo

腾讯云即时通信IMdemo
Dart
42
star
57

tls-sig-api-v2-java

Java
41
star
58

LiteAVProfessional_iOS

Objective-C
40
star
59

cos-python-sdk-v4

Python SDK for COS v4
Python
39
star
60

iot-link-android

IoT 应用端 App & SDK
Kotlin
38
star
61

TUIVoiceRoom

腾讯云TRTC针对直播、语聊、视频通话等推出的低代码解决方案~
Java
37
star
62

cos-ftp-server-V5

腾讯云对象存储(COS-V5)的FTP Server
Python
37
star
63

tc-iot-at-sdk-stm32-freertos-based-example

tc-iot-at-sdk-stm32-freertos-based-example 面向使用支持腾讯AT指令的模组(2/3/4/5G、NB、WIFI等)接入腾讯物联网平台的终端设备开发者,mcu侧使用[腾讯AT_SDK]的移植示例,示例基于STM32F103 MCU和FreeRTOS的软硬件环境如何实现HAL层的移植。
C
37
star
64

wafer2-ci-nodejs-demo

Wafer2 万象优图图像识别 Node.js Demo
JavaScript
36
star
65

vod-js-sdk-v6

TypeScript
36
star
66

coscli

Go
36
star
67

qcloud-iotexplorer-appdev-miniprogram-sdk-demo

34
star
68

tls-sig-api-v2-php

tls sig api version 2 php
PHP
32
star
69

vod-xiaoshipin-server

腾讯云小视频APP后台代码
JavaScript
32
star
70

XiaoZhiBo

Swift
32
star
71

cos-java-sdk-v4

java sdk for cos v4
Java
31
star
72

qcloud-sdk-ios

腾讯云服务iOS终端SDK
Objective-C
31
star
73

qcloud-sdk-android-samples

腾讯云服务Android SDK samples
Java
30
star
74

iot-device-android

IoT Hub & Explorer 设备端 SDK (Java & Android)
Java
29
star
75

tencent-cloud-iotsuite-embedded-c

This project is deperecated, pleases visit: https://github.com/tencentyun/qcloud-iot-explorer-sdk-embedded-c
29
star
76

flink-cos-fs

Flink-cos-fs 是腾讯云对象存储系统COS针对Flink的文件系统实现,并且支持了recoverwriter接口。
Java
28
star
77

intlcloud-documents

腾讯云国际站官方文档
HTML
28
star
78

cos-snippets

COS 官方文档的代码片段
Java
28
star
79

TRTCFlutterScenesDemo

腾讯云实时音视频Flutter版场景Demo
Dart
28
star
80

cos-wx-sdk-v4

腾讯云 COS 微信小程序 SDK(JSON API)
JavaScript
28
star
81

serverless-tencent-scf

Serverless framework provider plugin for Tencent SCF(Serverless Cloud Function)
TypeScript
27
star
82

cloudgame-android-sdk

云游戏 Android SDK https://cloud.tencent.com/solution/gs
Java
27
star
83

tsf-go

Go
26
star
84

qcloud-iot-sdk-tencent-at-based

qcloud-iot-sdk-tencent-at-based 面向使用支持腾讯AT指令的模组(2/3/4/5G、NB、WIFI等)接入腾讯物联网平台的终端设备开发者
C
26
star
85

cmq-java-sdk

Tencent CMQ JAVA SDK
Java
24
star
86

wafer2-game-quickstart-php

Wafer2 微信小游戏快速开发 Demo
PHP
24
star
87

qcloud-iot-sdk-for-stm32withfreeRTOS-example

腾讯云IOT SDK基于stm32+freeRTOS的移植示例,硬件环境为云+开发者大会提供的卡牌开发板
C
23
star
88

cos-java-sdk

对象存储服务(Cloud Object Service)Java SDK使用说明
Java
22
star
89

TUIChorus

腾讯云TRTC针对直播、语聊、视频通话等推出的低代码解决方案~
Java
21
star
90

cos-php-sdk

对象存储服务(Cloud Object Service)PHP SDK使用说明
PHP
21
star
91

imApiFlutterExample

腾讯云即时通信IM Flutter SDK API Example
Dart
20
star
92

cos-python-sdk

对象存储服务(Cloud Object Service)Python SDK使用说明
Python
20
star
93

tls-sig-api-php

PHP
20
star
94

qcloud-sdk-android

Tencent Cloud COS Android SDK Repository.
Java
20
star
95

iotexplorer-h5-panel-demo

腾讯连连自定义 H5 面板 demo
TypeScript
20
star
96

tls-sig-api-java

Java
19
star
97

cmq-java-tcp-sdk

cmq tcp java sdk
Java
19
star
98

cos-donet-sdk-v4

cos-donet-sdk-v4
C#
18
star
99

qcloud-iot-sdk-android

[DEPRECATED] 请移步至:
Java
18
star
100

cos-auth

一个简单的COS鉴权Server
JavaScript
17
star