返回顶部
首页 > 资讯 > 精选 >如何在 go Fiber/websocket/v2 中设置状态代码和原因
  • 954
分享到

如何在 go Fiber/websocket/v2 中设置状态代码和原因

go语言 2024-02-09 11:02:38 954人浏览 薄情痞子
摘要

在Go语言的Fiber/websocket/v2中,设置状态代码和原因是一个常见的需求。通过设置状态代码和原因,我们可以向客户端提供有关请求处理情况的详细信息。在本文中,我们将向您展示

Go语言的Fiber/websocket/v2中,设置状态代码和原因是一个常见的需求。通过设置状态代码和原因,我们可以向客户端提供有关请求处理情况的详细信息。在本文中,我们将向您展示如何在Fiber/WEBSocket/v2中轻松设置状态代码和原因。无论您是初学者还是有经验的开发者,本文都将为您提供清晰的指导和实用的示例代码。继续阅读,让我们开始吧!

问题内容

这是前端代码,我使用React js

const newSocket = new WebSocket(`ws://localhost:8080/${roomID}/${userID}`);
setSocket(newSocket); // Set the socket in state

newSocket.onclose = (event) => {
   console.log(`Socket connection closed: ${event.code}`);
   setSocket(null); // Set the socket to null after closing
}

这是后端的代码。我使用 go Fiber 和 go Fiber websocket

app.Get("/:room/:id", websocket.New(func(c *websocket.Conn) {
        roomID := c.Params("room")
        room := rooms[roomID] // Get the room based on roomID

        if room == nil {
            // Handle the case when the room does not exist
            log.Printf("Room %s does not exist", roomID)
            c.Close()
            return
        }
}))

我尝试设置自定义返回代码和原因,但似乎不起作用,因为

newSocket.onclose = (event) => {
      console.log(`Socket connection closed: ${event.reason}`);
      setSocket(null); // Set the socket to null after closing
    }

我在 event.reason 和 event.code 中始终得到空结果 1006

如何正确设置代码和推理?

我正在使用 “GitHub.com/gocarbon/fibre/v2” “github.com/go Fiber/websocket/v2”

解决方法

写入一个在调用 Close() 之前关闭消息:

if room == nil {
    // Handle the case when the room does not exist
    log.Printf("Room %s does not exist", roomID)
    c.WriteControl(websocket.CloseMessage,
        websocket.FORMatCloseMessage(websocket.CloseNormalClosure, "room does not exist"),
        time.Now().Add(time.Second))
    c.Close()
    return
}

以上就是如何在 go Fiber/websocket/v2 中设置状态代码和原因的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何在 go Fiber/websocket/v2 中设置状态代码和原因

本文链接: https://lsjlt.com/news/562466.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在 go Fiber/websocket/v2 中设置状态代码和原因
    在Go语言的Fiber/websocket/v2中,设置状态代码和原因是一个常见的需求。通过设置状态代码和原因,我们可以向客户端提供有关请求处理情况的详细信息。在本文中,我们将向您展示...
    99+
    2024-02-09
    go语言
  • PyCharm中如何在运行状态下查看源代码
    这篇文章主要介绍了PyCharm中如何在运行状态下查看源代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如何在运行状态下查看源代码查看该函数的源代码,我们通常使用IDE来完...
    99+
    2023-06-27
  • 如何在Netdata中设置对硬盘健康状态和温度的监控
    要在Netdata中设置对硬盘健康状态和温度的监控,可以按照以下步骤操作: 首先确保Netdata已经安装在您的系统上。如果您还没有安装Netdata,请根据官方文档进行安装:https://learn.netdata.cloud/do...
    99+
    2024-06-03
    zabbix
  • 如何在Go和Apache环境中打包Git代码?
    在日常开发中,我们经常需要将Git代码打包并部署到不同的环境中。本文将介绍如何在Go和Apache环境中打包Git代码,并提供一些演示代码。 首先,让我们来看看如何在Go环境中打包Git代码。Go语言有一个强大的工具,叫做“go get”,...
    99+
    2023-11-05
    apache 打包 git
  • MySQL乱码的具体原因和如何设置UTF8数据格式
    本文主要给大家介绍MySQL乱码的具体原因和如何设置UTF8数据格式,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL乱码的具体原因和如何设置...
    99+
    2024-04-02
  • 如何在Sublime3中设置自己的代码片段
    本篇内容主要讲解“如何在Sublime3中设置自己的代码片段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Sublime3中设置自己的代码片段”吧!在 Sublime Text 3 中设置...
    99+
    2023-06-25
  • 如何在PHP中设置和处理单选按钮组(代码示例)
    单选按钮组是HTML表单的基本元素之一,它提供了一种方便的方式来让用户从几个选择中进行选择。在PHP中,我们可以使用HTML表单构建单选按钮,然后使用PHP代码来设置和处理表单的数据。本文将向您展示如何在PHP中设置和处理单选按钮组。创建单...
    99+
    2023-05-14
  • 如何在Bash中更改Go Path和NPM路径设置?
    在Linux操作系统中,Bash是最常用的命令行界面。如果你是一个开发者,那么你一定需要使用Bash来编写和运行程序。在这篇文章中,我们将讨论如何在Bash中更改Go Path和NPM路径设置。 在开始之前,让我们先了解一下什么是Go Pa...
    99+
    2023-08-29
    path bash npm
  • 如何在GO中生成混合源代码和汇编列表?
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《如何在GO中生成混合源代码和汇编列表?》,在实现功能的过程中也带大家重新温习相关知识点,温故...
    99+
    2024-04-05
  • 数组和函数:如何在 Go 中编写高效的 NumPy 代码?
    NumPy 是一个非常流行的 Python 库,用于处理大型数据集和科学计算。它提供了高效的数组操作和广播功能,使得对于数组的计算非常方便。然而,如果你想在 Go 中进行类似的计算,该怎么办呢?在本文中,我们将介绍如何在 Go 中编写高效...
    99+
    2023-09-23
    数组 函数 numy
  • 如何在Go和JavaScript中测试异步编程代码的正确性?
    在当今的软件开发中,异步编程已经成为了一个非常常见的技术。它可以帮助我们更好地处理并发请求、提升性能和响应速度等。但是,异步编程也带来了一些挑战,其中之一就是如何测试异步代码的正确性。在本文中,我们将会讨论在Go和JavaScript中如何...
    99+
    2023-09-26
    javascript 异步编程 http
  • Go日志和Django并发处理:如何在代码中进行优化?
    在现代软件开发中,优化代码的性能是非常重要的。在这篇文章中,我们将讨论如何在Go日志和Django并发处理中进行优化。 一、Go日志优化 Go是一种高性能的编程语言,使用它的日志模块可以记录系统信息和调试信息。但是,在处理大量请求时,日志...
    99+
    2023-08-24
    日志 并发 django
  • 如何在 Go 中使用对象和数据类型提高代码质量?
    当我们谈到在 Go 中提高代码质量时,对象和数据类型无疑是非常重要的一部分。在本文中,我们将探讨如何使用对象和数据类型来提高 Go 代码的质量。 一、Go 中的对象和数据类型 在 Go 中,我们可以使用结构体来创建自定义对象。结构体是一种复...
    99+
    2023-06-25
    对象 数据类型 ide
  • 如何在在线答题中添加题目的代码和程序设计题
    随着互联网的发展,在线学习和在线考试已经成为一种趋势。在在线考试中,程序设计题是一类常见的题目类型。如何在在线答题平台中添加题目的代码和程序设计题,成为了一个重要的问题。本文将介绍如何通过具体的代码示例来实现这一功能。首先,为了能够在在线答...
    99+
    2023-10-21
    在线答题中添加代码 - 代码注入 - 编程题添加 - 代码块插入 - 程序设计题增加
  • Go、Django和函数编程:如何在开发中实现更高效的代码?
    在软件开发领域,每个人都希望能够编写高效的代码,以便在运行时获得更快的执行速度。尽管每个人都希望达到这个目标,但实现它的方式可能有很多种,其中包括使用不同的编程语言、框架和编程模型。在本文中,我们将探讨使用Go、Django和函数式编程来...
    99+
    2023-10-08
    django 函数 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作