【发布时间】:2021-12-09 23:27:10
【问题描述】:
假设我正在构建一个社交应用程序。我想在没有用户界面(全部通过节点)的情况下登录多个帐户(每个浏览器实例一个),并通过调用所有相应的端点来登录并开始聊天。
重要的部分是测试用户何时关闭选项卡或注销或离开组,因此 websocket 的连接关闭。
【问题讨论】:
标签: javascript node.js browser websocket headless
假设我正在构建一个社交应用程序。我想在没有用户界面(全部通过节点)的情况下登录多个帐户(每个浏览器实例一个),并通过调用所有相应的端点来登录并开始聊天。
重要的部分是测试用户何时关闭选项卡或注销或离开组,因此 websocket 的连接关闭。
【问题讨论】:
标签: javascript node.js browser websocket headless
如果我理解正确的话。 您希望在客户端连接或断开连接时发生服务器端事件,无需任何 html、css .... 或任何其他用户界面。 您可以在节点中这样做:
对于您使用的连接:
Server.on("connection,function(ws){some stuff...})
连接时调用的函数会默认获取连接的websocket作为参数。我在这里只使用了一个 lambda 函数,你也可以调用一个函数,然后将 websocket 作为参数。
对于断开连接,您在 Server.on 函数中放置一个函数来监控客户端何时断开连接。像这样:
Server.on("connection,function(ws){
ws.onclose = function (ws) {
some stuff...
}
})
您可以再次将 lambda 函数替换为另一个函数。 在我的情况下,服务器等于这个:
const wsserver = require("ws").Server
const server = new wsserver({ port: someport })
但它可能会有所不同。 除此之外,您需要做的就是连接客户端。 我是这样做的,但它也可能会有所不同。
const ws = new WebSocket("ws://localhost:someport");
我希望这会有所帮助。
【讨论】: