go gin 监听多个端口 每个端口创建一个独立的路由器实例
时间: 2024-03-27 09:36:48 浏览: 15
可以通过在每个端口的监听函数中创建独立的`gin.Engine`实例来实现为每个端口创建一个独立的路由器实例。
下面是一个示例代码,可以监听两个端口,每个端口都有一个独立的路由器实例:
```go
package main
import "github.com/gin-gonic/gin"
func main() {
// 监听端口1
go func() {
router1 := gin.Default()
router1.GET("/", func(c *gin.Context) {
c.String(200, "Hello from port 8080")
})
if err := router1.Run(":8080"); err != nil {
panic(err)
}
}()
// 监听端口2
go func() {
router2 := gin.Default()
router2.GET("/", func(c *gin.Context) {
c.String(200, "Hello from port 9090")
})
if err := router2.Run(":9090"); err != nil {
panic(err)
}
}()
select {}
}
```
在这个示例中,我们分别创建了`router1`和`router2`两个独立的路由器实例,并分别监听端口`8080`和`9090`。在每个监听函数中,我们使用创建的路由器实例来定义HTTP路由,并调用`Run()`方法来启动监听。
需要注意的是,由于每个端口都有自己的路由器实例,它们之间是相互独立的,所以在不同的路由器实例中定义的路由是不会相互影响的。