• Stars
    star
    340
  • Rank 124,317 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 2 years 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,548
star
2

wafer

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

TRTCSDK

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

wafer2-startup

Wafer - 腾讯云下一代小程序综合解决方案
JavaScript
1,022
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
363
star
9

cos-js-sdk-v5

腾讯云 COS JS SDK(XML API)
JavaScript
329
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
233
star
14

wafer2-client-sdk

Wafer client SDK
JavaScript
225
star
15

cos-go-sdk-v5

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

qcloud-cos-sts-sdk

QCloud COS STS SDK for Backend Server
Java
200
star
17

wecos

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

wafer-node-server-demo

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

clb-quic-demo

clb team contribute
Java
196
star
20

wafer2-quickstart-php

Wafer2 PHP 简化版 Demo
PHP
189
star
21

cos-wx-sdk-v5

腾讯云 COS 小程序 SDK(XML API)
JavaScript
189
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++
119
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

tencentcloud-exporter

TencentCloud Prometheus Exporter
Go
109
star
32

blog

Blog to share events or technique topics
109
star
33

serverless-demo

demo for serverless
108
star
34

wafer-csharp-server-sdk

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

wecos-ugc-upload-demo

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

tsf-simple-demo

Tencent Service Framework Demo
Java
85
star
37

TUILiveRoom

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

LiteAVProfessional_Android

84
star
39

scfcli

serverless cli
Python
84
star
40

image-java-sdk-v2.0

Java
84
star
41

TWebLive

Vue
82
star
42

hadoop-cos

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

wafer-node-session

Standalone node session middleware for wechat micro application
JavaScript
81
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
63
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
46
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

tls-sig-api-v2-java

Java
42
star
55

qcloud-sdk-dotnet

C#
42
star
56

TencentIMFlutterDemo

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

scf-demo-repo

Python
42
star
58

LiteAVProfessional_iOS

Objective-C
40
star
59

iot-link-android

IoT 应用端 App & SDK
Kotlin
40
star
60

cos-python-sdk-v4

Python SDK for COS v4
Python
39
star
61

TUIVoiceRoom

腾讯云TRTC针对直播、语聊、视频通话等推出的低代码解决方案~
Java
39
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

36
star
68

vod-xiaoshipin-server

腾讯云小视频APP后台代码
JavaScript
33
star
69

tls-sig-api-v2-php

tls sig api version 2 php
PHP
32
star
70

XiaoZhiBo

Swift
32
star
71

flink-cos-fs

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

cos-java-sdk-v4

java sdk for cos v4
Java
31
star
73

qcloud-sdk-ios

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

intlcloud-documents

腾讯云国际站官方文档
HTML
30
star
75

qcloud-sdk-android-samples

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

iot-device-android

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

tencent-cloud-iotsuite-embedded-c

This project is deperecated, pleases visit: https://github.com/tencentyun/qcloud-iot-explorer-sdk-embedded-c
29
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

tsf-go

Go
27
star
83

qcloud-iot-sdk-tencent-at-based

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

cloudgame-android-sdk

云游戏 Android SDK https://cloud.tencent.com/solution/gs
Java
27
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

iotexplorer-h5-panel-demo

腾讯连连自定义 H5 面板 demo
TypeScript
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

cos-php-sdk

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

tls-sig-api-java

Java
19
star
97

cmq-java-tcp-sdk

cmq tcp java sdk
Java
19
star
98

iot-link-ios

IoT 应用端 App & SDK
Objective-C
19
star
99

cos-donet-sdk-v4

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

qcloud-iot-sdk-android

[DEPRECATED] 请移步至:
Java
18
star