Golang 빌드는 WebSocket 서버 가이드를 통해 스톰프합니다
WebSocket과 Stomp 프로토콜의 조합은 실시간 통신에 널리 사용됩니다. 이 기사는 Golang을 사용하여 Stomp 프로토콜을 지원하는 WebSocket 서버를 구축하고 go-stomp
라이브러리의 불충분 한 문서화 문제를 극복하는 방법을 탐색하도록 안내합니다.
배경
많은 개발자들은 go-stomp
라이브러리에 잘 개발 된 문서와 예제가 없으므로 서버 측 구현에 어려움을 겪고 있습니다.
해결책
go-stomp
라이브러리의 문서가 충분하지 않기 때문에 적용 가능성을 탐색하고 다른 솔루션을 고려해야합니다.
go-stomp
평가 : 예제 또는 테스트 코드와 같은 WebSocket 서버 측 구현의 징후에 대해go-stomp
라이브러리의 코드를 다시 확인하십시오.-
대안 :
go-stomp
적용되지 않으면 다음 대안을 고려하십시오.- Gorilla WebSocket : Stomp를 포함한 모든 메시징 프로토콜과 함께 사용할 수있는 인기있는 WebSocket 라이브러리.
- GO-Stomp-Client : 클라이언트 라이브러리이지만 사용자 정의 WebSocket 서버와 통합 할 수 있습니다.
- Centrifugo : 성숙한 실시간 메시징 서버는 기본적으로 Stomp 및 WebSocket을 지원합니다.
-
샘플 구현 (Gorilla WebSocket 및 Go-Stomp-Client 사용) :
다음 예제는 Gorilla WebSocket 및
go-stomp-client
와 함께 간단한 서버를 구축하는 방법을 보여줍니다.패키지 메인 수입 (수입) "FMT" "통나무" "net/http" "github.com/gorilla/websocket" "github.com/go-stomp/stomp" )) var 업그레이드 = WebSocket.Upgrade {} func wsendpoint (w http.responsewriter, r *http.request) { conn, err : = upgrade.upgrade (w, r, nil) err! = nil {인 경우 log.println ( "WebSocket 업그레이드 오류 :", err) 반품 } Conn.Close를 연기합니다 () stompconn, err : = stomp.dial ( "tcp", "localhost : 61613") // err! = nil {인 경우 stomp 서버 주소로 바꾸십시오. log.println ( "스톰 연결 오류 :", err) 반품 } 연기 stompconn.disconnect () Go Handlewebsocketmessages (Conn, Stompconn) } func handlewebsocketmessages (wsconn *websocket.conn, stompconn *stomp.conn) { 을 위한 { _, msg, err : = wsconn.readmessage () err! = nil {인 경우 log.println ( "WebSocket 읽기 오류 :", err) 부서지다 } err = stompconn.send ( "/queue/messages", "", msg) // err! = nil {인 경우 스톰프 대상으로 바꾸십시오. log.println ( "Stomp Send Error :", err) } } } func main () { http.handlefunc ( "/ws", wsendpoint) log.println ( "서버 청취 : 8080") log.fatal (http.listenandserve ( ": 8080", nil)) }
참고 : 이 예제에는
github.com/gorilla/websocket
및github.com/go-stomp/stomp
라이브러리 설치가 필요합니다. 스톰프 서버 주소와 대상을 실제 구성으로 교체하십시오.
결론적으로
go-stomp
라이브러리의 문서는 코드 분석을 통해 불충분하고 다른 성숙한 Golang 라이브러리와 결합 될 수 있지만 WebSocket 서버를 통해 완전히 작동하는 스톰프를 성공적으로 구축 할 수 있습니다. 오른쪽 라이브러리를 선택하고 제공된 샘플 코드를 참조하여 실시간 통신 응용 프로그램을 쉽게 활성화하십시오.
위 내용은 Golang을 사용하여 스톰프 프로토콜을 지원하는 WebSocket 서버를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

GitHub是一个面向开源及私有软件项目的托管平台,可以让开发者们在这里托管自己的代码,并进行版本控制。GitHub主打的是开源项目与协作,通过这个平台上的开源项目,开发者们可以查看其他开发者的项目源代码,并进行交流和学习。

在git中,“push -u”的意思是将本地的分支版本上传到远程合并,并且记录push到远程分支的默认值;当添加“-u”参数时,表示下次继续push的这个远端分支的时候推送命令就可以简写成“git push”。

在git中,pack文件可以有效的使用磁盘缓存,并且为常用命令读取最近引用的对象提供访问模式;git会将多个指定的对象打包成一个成为包文件(packfile)的二进制文件,用于节省空间和提高效率。

GitLab是一种基于Web的Git版本控制库管理软件,旨在帮助开发团队更好地协同工作,提高工作效率。当您第一次登录GitLab时,系统会提示您要更改初始密码以确保账户安全。本文将为大家介绍如何在GitLab上进行第一次登录并更改密码。

git中pull失败的解决方法:1、利用“git reset --hard”强制覆盖掉自己的本地修改;2、利用“git stash”推送一个新的储藏,拉取之后利用“git stash pop”将修改保存到暂存区;3、若依然出现问题,则将文件保存到暂存区并提交注释即可。

git分支能改名字。改名方法:1、利用git中的branch命令修改本地分支的名称,语法为“git branch -m 旧名字 新名字”;2、利用“git push origin 新名字”命令,在删除远程分支之后将改名后的本地分支推送到远程;3、利用IDEA直接操作修改分支名称即可。

本篇文章给大家带来了关于git的相关知识,其中主要跟大家聊一聊怎么让你的git记录保持整洁,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

git删除某个分支的方法:1、利用“git branch --delete dev”命令删除本地分支;2、利用“git push origin --delete branch”命令删除远程分支;3、利用“git branch --delete --remotes”命令删除追踪分支。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.
