javascript - 具有无服务器框架(BlitzJs)的 Websocket api?
问题描述
我正在为我的应用程序使用无服务器框架Blitz.js。但是,现在我想实现一个通知系统,以便通知用户任何更新。由于 Blitz.js 是无服务器的,我不知道如何继续。
为开放式问题道歉,但是,我想知道是否有实现 Web-Socket 的方法/指南或某种轮询来通知用户?
其次,如何将后端服务器与 Blitz 等无服务器框架集成。
更新:(分享我的想法)
我看到它的方式是系统会像下面这样工作。前端和无服务器之间的无服务器通信将继续进行,现在后端服务器(如果确实需要通知/轮询)将与无服务器通信并将其转发到前端。
解决方案
WebSockets 是浏览器驻留代码与服务器建立持久连接的一种方式。因此,您正在做一些有点奇怪的事情,并且肯定是尝试将它与无服务器框架一起使用的先驱。
但是,WebSocket 连接是http(或 https)连接。因此,如果您的无服务器实例一直持续到所有连接都关闭,您可以想象在用户的浏览器和无服务器实例之间建立连接。如果您可以server
在 blitz 服务器端代码中获得对象,则可以使用npm ws设置 WebSocket 侦听器。
const requestIp = require( 'request-ip' )
const ws = require('ws' )
...
const wss = new ws.Server({ server });
wss.on('connection', function connection(ws, request) {
const url = new URL( request.url, 'wss://example.com', true )
const path = url.pathname
const clientIp = requestIp.getClientIp( request )
console.log ('connected to: %s from %s', path, clientIp)
ws.on('message', function incoming(message) {
console.log('received: %s from %s', message, clientIp);
})
ws.on('close', function close (code, reason) {
console.log ('closed: %s from %s', reason , clientIp)
})
ws.send('something');
});
推荐阅读
- python - 来自字符串的 Python 时区
- tensorflow - TensorFlow 混合精度训练:Conv2DBackpropFilter 不使用 TensorCore
- android - 如何在深色模式下隐藏 Android 标题栏?
- svm - 图像数据集是线性可分的吗?
- python - 如何在python 2.7的for循环中从文件中导入函数
- python - 如何计算日期列表中的连续天数
- firebase - 将“QueryDocumentSnapshot”转换为 Json
- java - 检查实体是否包含主键
- unit-testing - Jest [vue-test-utils]:名称已弃用,将在下一个主要版本中删除
- kubernetes - 在 kubernetes 上部署 Hyperledger febric 区块链代码