ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ,
ΠΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ sockjs (http://godoc.org/gopkg.in/igm/sockjs-go.v2/sockjs), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΏ http.Handler.
ΠΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ:
var messageHandler = sockjs.NewHandler("/api/messages", sockjs.DefaultOptions, func(session sockjs.Session) {
go func() {
receiveMessage(session)
}()
})
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π² func (c *gin.Context)
ΡΠ°ΠΊ ΡΡΠΎ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ..?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠΎ: # 51
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π₯Π°Π²ΡΠ΅Ρ!
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ :
func messageHandler(c *gin.Context) {
sockjsHandler := sockjs.NewHandler("/api/messages", sockjs.DefaultOptions, func(session sockjs.Session) {
go func() {
receiveMessage(session)
}()
})
sockjsHandler.ServeHTTP(c.Writer, c.Request)
}
@gplume ΠΎΡΠ»ΠΈΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Ρ ΡΠΊΠΎΡΠΎ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
51 Π²ΡΠΏΡΡΠΊ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π₯Π°Π²ΡΠ΅Ρ!
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ :