You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

gitee.com/fierce_wolf/go-web-crawler

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gitee.com/fierce_wolf/go-web-crawler

v1.0.1
Go
Version published
Created
Source

gitee.com/fierce_wolf/go-web-crawler

go编译器的安装

ubuntu20自带的版本,比较旧,go的编译器版本,至少使用1.22以及以上版本,所以下载go官网的版本

wget https://dl.google.com/go/go1.22.0.linux-arm64.tar.gz

tar -C /usr/local -xzf go1.22.0.linux-arm64.tar.gz

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profile

IDEA的调试

在IDEA中,可以通过安装go的插件,进行安装调试。但是,IDEA插件市场上的dlv调试器,最高只支持到1.18版本。

所以,它调试新版本的GO,将出现可能调试错误的信息:WARNING: undefined behavior - version of Delve is too old for Go version 1.22 (maximum supported version 1.18)

这时候,可以通过下列命令,使用你安装的GO,编译出一个当前GO版本的调试器dlv.exe

go install github.com/go-delve/delve/cmd/dlv@latest

然后,你将GO目录下的dlv.exe复制出来,把IDEA目录下的dlv.exe替换掉,这时候调试工具的版本就匹配了。

IDEA的远程调试

在远程的LINUX环境中,安装delve

#在服务器上使用dlv引导你的程序,其中2345是IDEA上配置的远程debug端口,下面的前面的引导头,后面接你自己的代码程序命令
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec 

然后在IDEA中选择Go Remote来远程debug

组件库的引用

go默认的GOPROXY是https://proxy.golang.org非常的缓慢,可以切换为国内的镜像goproxy.cn来解决

#go默认的GOPROXY是https://proxy.golang.org非常的缓慢,可以切换为国内的镜像goproxy.cn来解决
go env -w GOPROXY=https://goproxy.cn,direct

#查询最新可用版本
go list -m -versions gitee.com/fierce_wolf/go-fox-edge-common

#下载云端的git库和第三方的git库
go mod tidy

#可以本地测试自己的go工程代码
go run main.go

#也可以windows本地编译
go build -o main.exe

版本依赖问题

go的mod版本管理,并不完善,它的go mod tidy命令虽然会自动生成mod文件中的依赖包, 但是,它会自作主张的升级为mod中相关包的最新版本,这就导致了各个包之间的版本兼容性问题

解决办法就是在go mod tidy之后,直接go get具体的版本,进行版本降级

#例如执行go mod tidy后
go mod tidy

#golang.org/x/crypto v0.23.0,被go mod tidy自动升级为v0.26.0
#此时v0.26.0跟其他部件要求的go最小版本是不兼容的
#会提示这个错误:note: module requires Go 1.20

#在命令行进行可以使用指明v0.23.0版本的命令,进行版本降级到v0.23.0
go get golang.org/x/crypto@v0.23.0

#此时可能会产生新的依赖关系,缺失github.com/gabriel-vasile/mimetype/internal/charset@v1.4.3
#那么进行go get这个缺失的版本
go get github.com/gabriel-vasile/mimetype/internal/charset@v1.4.3

SQLite3引入后的GCC问题

SQLite3是基于C语言开发的第三方数据库,在引用github.com/mattn/go-sqlite3组件的时候,这时候就不再是纯粹的GO语言程序了

此时,需要安装GCC环境,可以选择安装mingw64,推荐包x86_64-14.2.0-release-posix-seh-msvcrt-rt_v12-rev0.7z

IDEA的命令行参数

redis.host=192.168.1.23 --env_dev=true --app_engine=native --app_type=kernel --app_name=manager-native --env_type=device --env_cpu_id= --env_database=sqlite3 --work_mode=local server.port=9101 redis.port=6379 redis.password=12345678 mysql.host=192.168.1.23 mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge param1=1234 param2=567

MQTT测试范例

发送:

topic:/fox/manager/c2e/BFEBFBFF000906A3/forward

{
	"topic": "/fox/manager/c2e/F9509B1CE7B0F023/forward",
	"uuid": "fe8a1b6e-8e54-4ccd-b646-31b108cd3228",
	"resource": "/device/page",
	"method": "post",
	"body": {
		"pageSize": 2,
		"pageNum": 1
	}
}

订阅:

topic:/fox/manager/e2c/forward/BFEBFBFF000906A3/#

{
	"topic": "/fox/manager/c2e/BFEBFBFF000906A3/forward",
	"uuid": "fe8a1b6e-8e54-4ccd-b646-31b108cd3228",
	"method": "post",
	"resource": "/device/page",
	"body": {
		"list": [{
			"channelName": "channel-simulator",
			"channelType": "simulator",
			"createTime": 1732106118068,
			"deviceName": "CE+T UPS设备-1000",
			"deviceParam": {
				"设备地址": 1
			},
			"deviceType": "CE+T UPS V3.0",
			"extendParam": {},
			"id": 1001,
			"manufacturer": "深圳安圣电气有限公司",
			"updateTime": 1732106142154
		}, {
			"channelName": "channel-simulator",
			"channelType": "simulator",
			"createTime": 1732106118068,
			"deviceName": "CE+T UPS设备-999",
			"deviceParam": {
				"设备地址": 1
			},
			"deviceType": "CE+T UPS V3.0",
			"extendParam": {},
			"id": 1000,
			"manufacturer": "深圳安圣电气有限公司",
			"updateTime": 1732106142154
		}],
		"total": 1001
	},
	"msg": "",
	"code": 200
}

FAQs

Package last updated on 10 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts