当前位置: 首页 > news >正文

旅行社网站程序品牌网站建设找顺的

旅行社网站程序,品牌网站建设找顺的,绍兴做网站选哪家,微推客golang使用 Gin实现 websocket#xff0c;这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下#xff0c;新建项目文件夹 go-gin-websocket 进入项目文件夹#xff0c;打开cmd窗口#xff0c;在项目#xff08;go-gin-websocket这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下新建项目文件夹 go-gin-websocket 进入项目文件夹打开cmd窗口在项目go-gin-websocket文件夹路径下执行初始化命令 go mod init go-gin-websocket go mod init go-gin-websocket 安装依赖 安装gin go get -u github.com/gin-gonic/gin 安装websocket go get github.com/gorilla/websocket 2、搭建项目 在项目目录下新建controller、static、templates、ws文件夹分别用来存放controller代码、静态文件、页面、websocket代码 在templates目录下新建 index.html页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body hello scriptvar webSocket;try {webSocket new WebSocket(ws://127.0.0.1:8080/ws?idabc123456789);}catch (e) {console.log(e)}webSocket.onerror function(event) {}//与WebSocket建立连接webSocket.onopen function(event) {console.log(建立连接)console.log(JSON.stringify(event))var msg 身无彩凤双飞翼心有灵犀一点通//发送消息webSocket.send(msg);};//接收服务端发送的消息webSocket.onmessagefunction (m) {console.log(m)console.log(m.data)} /script /body /html 在controller目录下新建 page_controller.go package controllerimport github.com/gin-gonic/ginfunc Index(c *gin.Context) {c.HTML(200, index.html, nil) }在ws目录下新建 websocket.go package wsimport (fmtgithub.com/gin-gonic/gingithub.com/gorilla/websocketlognet/http )func InitWebSocket(c *gin.Context) {var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024,CheckOrigin: func(r *http.Request) bool {log.Println(升级协议, r.Header[User-Agent])return true},}conn, err : upgrader.Upgrade(c.Writer, c.Request, nil)if err ! nil {log.Println(err)return}defer conn.Close()userId : c.Query(id)log.Println(用户id:, userId)for {mt, message, err : conn.ReadMessage()log.Println(获取客户端发送的消息: string(message))fmt.Println(mt)if err ! nil {log.Println(err)break}var msg 春风得意马蹄疾,一日看尽长安花err2 : conn.WriteMessage(websocket.TextMessage, []byte(msg))if err2 ! nil {log.Println(write:, err2)break}}}在项目根目录下新建 main.go main.go内容 package mainimport (github.com/gin-gonic/gingo-gin-websocket/controllergo-gin-websocket/ws )func main() {e : gin.Default()//html页面位置e.LoadHTMLGlob(templates/*)//静态文件位置e.Static(/static, ./static)e.GET(/, controller.Index)e.GET(/ws, ws.InitWebSocket)e.Run(0.0.0.0:8080) }3、运行测试 浏览器请求 http://localhost:8080/ 4、添加session 添加session用来存储在线用户 这里使用一个map用来保存key是用户idvalue是websocket连接再加一个读写锁保证线程安全 package wsimport (fmtgithub.com/gin-gonic/gingithub.com/gorilla/websocketlognet/httpsync )var connects make(map[string]*websocket.Conn) var lock sync.RWMutexfunc addSession(id string, conn *websocket.Conn) {lock.Lock()connects[id] conndefer lock.Unlock() } func getSession(id string) *websocket.Conn {lock.RLock()defer lock.RUnlock()return connects[id] } func removeSession(id string) {lock.Lock()delete(connects, id)defer lock.Unlock() }func InitWebSocket(c *gin.Context) {var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024,CheckOrigin: func(r *http.Request) bool {log.Println(升级协议, r.Header[User-Agent])return true},}conn, err : upgrader.Upgrade(c.Writer, c.Request, nil)if err ! nil {log.Println(err)return}defer conn.Close()userId : c.Query(id)log.Println(用户id:, userId)//添加sessionaddSession(userId, conn)for {mt, message, err : conn.ReadMessage()log.Println(获取客户端发送的消息: string(message))fmt.Println(mt)if err ! nil {log.Println(err)break}var msg 春风得意马蹄疾,一日看尽长安花err2 : conn.WriteMessage(websocket.TextMessage, []byte(msg))if err2 ! nil {log.Println(write:, err2)break}}}至此完
http://www.w-s-a.com/news/948385/

相关文章:

  • 建站宝盒免费下载上海网论坛网址
  • 国内最有趣的25个网站推广流程
  • 红河做网站抖音小程序怎么挂到抖音上
  • 高度重视机关门户网站建设外包
  • 网站里面送礼物要钱怎么做代码网站开发怎么对接客户
  • 泰州网站制作策划如何做网站需求
  • 门户网站优化报价软件技术公司
  • 怎样换网站logo公司名字大全集免费
  • 为网站网站做推广各类最牛网站建设
  • 网站用自己的电脑做服务器佛山做网站制作公司
  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话
  • 设计上海展会2023seo网站模板下载
  • 开发一个卖东西的网站多少站长工具永久
  • 公司网站怎么突然多了好多友情链接如何删除宁波有几个区
  • 临沂seo网站推广wordpress新编辑器
  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材