微信小程序可以启用 SSE长连接 对接·代码示例
时间: 2024-09-09 14:04:13 浏览: 170
微信小程序支持Server-Sent Events (SSE) 长连接技术,用于实现实时推送数据到客户端。在微信小程序中启用 SSE,通常需要在后端服务器设置,而客户端通过 JavaScript 的 `wx.request` 或者第三方库(如 axios 等)来处理。
以下是一个简单的微信小程序前端使用 wx.request 接收 SSE 数据的代码示例:
```javascript
// 客户端代码
Page({
data: {
eventSource: null,
},
startListening: function() {
this.eventSource = wx.createSocket({
url: 'https://your-server.com/sse', // 替换为你的服务器地址
method: 'GET',
header: {
'Content-Type': 'text/event-stream',
},
success(res) {
if (res.statusCode === 200) {
this.eventSource.onmessage = function(e) {
console.log('Received message:', e.data);
// 在这里处理接收到的数据
};
this.eventSource.onerror = function(err) {
console.error('Error occurred:', err);
};
} else {
console.error('Failed to connect:', res.statusCode);
}
},
fail() {
console.error('Failed to connect');
},
});
},
stopListening: function() {
if (this.eventSource) {
this.eventSource.close();
this.eventSource = null;
}
},
onUnload: function() {
this.stopListening(); // 当页面卸载时停止监听
},
})
```
在后端,你需要提供一个支持 SSE 的 API,发送事件流数据给这个 URL。服务器端的具体实现会依赖于你的语言和框架,例如 Node.js 可能使用 `ws` 模块,PHP 可能使用 `Ratchet`。
阅读全文