nano icon indicating copy to clipboard operation
nano copied to clipboard

use of internal package not allowed

Open 582727501 opened this issue 4 years ago • 1 comments

这个是啥问题,go run main.go ../../pkg/mod/github.com/lonnng/[email protected]/agent.go:31:2: use of internal package github.com/lonng/nano/internal/codec not allowed ../../pkg/mod/github.com/lonnng/[email protected]/agent.go:32:2: use of internal package github.com/lonng/nano/internal/message not allowed ../../pkg/mod/github.com/lonnng/[email protected]/agent.go:33:2: use of internal package github.com/lonng/nano/internal/packet not allowed

package main

import ( "fmt" "log" "net/http"

"github.com/lonnng/nano"
"github.com/lonnng/nano/component"
"github.com/lonnng/nano/serialize/json"
"github.com/lonnng/nano/session"

)

type ( // define component Room struct { component.Base group *nano.Group }

// protocol messages
UserMessage struct {
	Name    string `json:"name"`
	Content string `json:"content"`
}

NewUser struct {
	Content string `json:"content"`
}

AllMembers struct {
	Members []int64 `json:"members"`
}

JoinResponse struct {
	Code   int    `json:"code"`
	Result string `json:"result"`
}

)

func NewRoom() *Room { return &Room{ group: nano.NewGroup("room"), } }

func (r *Room) AfterInit() { nano.OnSessionClosed(func(s *session.Session) { r.group.Leave(s) }) }

// Join room func (r *Room) Join(s *session.Session, msg []byte) error { s.Bind(s.ID()) // binding session uid s.Push("onMembers", &AllMembers{Members: r.group.Members()}) // notify others r.group.Broadcast("onNewUser", &NewUser{Content: fmt.Sprintf("New user: %d", s.ID())}) // new user join group r.group.Add(s) // add session to group return s.Response(&JoinResponse{Result: "sucess"}) }

// Send message func (r *Room) Message(s *session.Session, msg *UserMessage) error { return r.group.Broadcast("onMessage", msg) }

func main() { nano.Register(NewRoom()) nano.SetSerializer(json.NewSerializer()) nano.EnableDebug() log.SetFlags(log.LstdFlags | log.Llongfile)

http.Handle("/web/", http.StripPrefix("/web/", http.FileServer(http.Dir("web"))))

nano.SetCheckOriginFunc(func(_ *http.Request) bool { return true })
nano.Listen(":3250", nano.WithIsWebsocket(true))

}

582727501 avatar May 26 '20 06:05 582727501

Please reference https://stackoverflow.com/questions/33351387/how-to-use-internal-packages

lonng avatar May 27 '20 07:05 lonng

这是来自QQ邮箱的假期自动回复邮件。   您好,我没在上网,看到后,我会尽快给您回复。

582727501 avatar May 06 '23 13:05 582727501