Go gorilla websocket 小试牛刀

一、项目引入

  • 项目结构很简单,只有3个文件,大家可以把这三个文件排版成这种格式,然后导入。
    在这里插入图片描述

    • 三个文件详见步骤3
    • 如果大家觉得下载太麻烦,那就去步骤四直接下载代码 https://gitee.com/yinleilei/GoWebsocket,记得把 server.go 第四行 "**/**/impl",改成你在 mod.go 中设置的名字
  • 关于怎么用Goland新建一个已有的项目,请查看我这一篇 GoLand添加一个已有项目的相关配置

二、项目使用

1、根目录 GoWebsocket 下新建 go.mod 文件

  • 由于我新建的是一个 Go Mosules ( vgo )类型的项目,所以要在根目录GWebsocket下加一个 go.mod文件
  • go.mod 内容如下:定义项目的模块名称
module GoWebsocket

2、go build 构建项目

  • 如果没创建go.mod文件就执行 go build,报错如下:
go: cannot find main module; see 'go help modules'

3、go run 入口文件,执行项目

  • go run server.go 命令启动项目
    弹窗网络安全提示:选择允许访问,如图
    在这里插入图片描述

程序没报错没结束,说明在执行中,如图
在这里插入图片描述

4、执行 client.html 文件

GoLang中选择 client.html 文件,选择一种浏览器打开,如图
在这里插入图片描述
浏览器打开后,点击操作按钮打开关闭发送,打印效果,如图
在这里插入图片描述

5、其他

  • 1)、mod.go 中定义的模块 GoWebsocket,在 server.go中引入impl下的所有文件中用到了
import (
	"GoWebsocket/impl"
	"net/http"
	"time"

	"github.com/gorilla/websocket"
)
  • 2)、如果修改了服务端代码,请务必重启服务,重启命令为go run 入口文件
go run server.go

三、初始文件代码

1、connection.go

package main

import (
	"GoWebsocket/impl"
	"net/http"
	"time"

	"github.com/gorilla/websocket"
)

var (
	upgrader = websocket.Upgrader{
   
		//允许跨域
		CheckOrigin: func(r *http.Request) bool {
   
			return true
		},
	}
)

func wsHandler(w http.ResponseWriter, r *http.Request) {
   
	var (
		wsConn *websocket.Conn
		err    error
		data   []byte
		conn   *impl.Connection
	)
	//Upgrade字段:websocket
	if wsConn, err = upgrader.Upgrade(w, r, nil); err != nil {
   
		return
	}

	if conn, err = impl.InitConnection(wsConn); err != nil {
   
		goto ERR
	}

	/**
	这个是发送心跳
	*/
	go func() {
   

		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值