使用无服务器框架的WebSocket API(BlitzJs)?

e7arh2l6  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(229)

我的应用使用的是无服务器框架Blitz.js。但是,现在我想实现一个通知系统,这样用户就可以收到任何更新的通知。由于Blitz.js是无服务器的,我不知道该如何继续。
对于开放式的问题,我很抱歉,但是,我想知道是否有一种方法/指南来实现Web-Socket或某种轮询来通知用户?
第二,如何将后端服务器与Blitz这样的无服务器框架集成在一起。

更新:(分享我的想法)

在我看来,系统的工作方式如下:前端和无服务器之间的无服务器通信将继续进行,现在后端服务器(如果确实需要通知/轮询)将与无服务器通信并将其转发到前端。

e1xvtsh3

e1xvtsh31#

WebSockets是驻留在浏览器中的代码与服务器建立持久连接的一种方式。因此,您正在做一些有点奇怪的事情,当然是在尝试将它与无服务器框架一起使用的先驱。
但是,WebSocket连接 * 是 * http(或https)连接。因此,如果您的无服务器示例一直持续到所有连接都关闭,您可以想象您的用户浏览器和您的无服务器示例之间会有一个连接。如果您可以在您的 lightning 战服务器端代码中获得server对象,您可以使用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');
});
rsaldnfx

rsaldnfx2#

我刚经过一个仓库它成功地把socketio和blitz整合在一起了。
因此,自定义启动操作应该是可能的。
https://github.com/parkerbedlan/blitz-chathttps://github.com/parkerbedlan/blitz-chat/commit/3aafdb2c115084a44835c79b16c05e59e2d52477显示器

相关问题