サードパーティ製のアプリケーションを統合
beegoは、サードパーティ製のアプリケーションの統合をサポートし、次のようにhttp.Handlerカスタマイズすることができます:
beego.RouterHandler("/chat/:info(.*)", sockjshandler)
sockjshandlerはhttp.Handlerインターフェイスを実装しています。
beegoはSockJSのチャットをサポートするための例があり、コードは次のとおりです:
package mainimport ("fmt""github.com/astaxie/beego""github.com/fzzy/sockjs-go/sockjs""strings")var users *sockjs.SessionPool = sockjs.NewSessionPool()func chatHandler(s sockjs.Session) {users.Add(s)defer users.Remove(s)for {m := s.Receive()if m == nil {break}fullAddr := s.Info().RemoteAddraddr := fullAddr[:strings.LastIndex(fullAddr, ":")]m = []byte(fmt.Sprintf("%s: %s", addr, m))users.Broadcast(m)}}type MainController struct {beego.Controller}func (m *MainController) Get() {m.TplNames = "index.html"}func main() {conf := sockjs.NewConfig()sockjshandler := sockjs.NewHandler("/chat", chatHandler, conf)beego.Router("/", &MainController{})beego.RouterHandler("/chat/:info(.*)", sockjshandler)beego.Run()}
上記の例では、 SockJSのためのシンプルなチャットルームを実装し、より多くの拡張のためにhttp.Handlerを使用することができます
