go-web-crawler

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2025 License: AGPL-3.0

README

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
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL