mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 15:30:36 +01:00
This commit is contained in:
parent
d03c9ad231
commit
480f85a9db
|
@ -33,6 +33,10 @@ type Websocket struct {
|
|||
// MaxMessageSize max message size allowed from connection
|
||||
// Default value is 1024
|
||||
MaxMessageSize int64
|
||||
// BinaryMessages set it to true in order to denotes binary data messages instead of utf-8 text
|
||||
// see https://github.com/kataras/iris/issues/387#issuecomment-243006022 for more
|
||||
// defaults to false
|
||||
BinaryMessages bool
|
||||
// Endpoint is the path which the websocket server will listen for clients/connections
|
||||
// Default value is empty string, if you don't set it the Websocket server is disabled.
|
||||
Endpoint string
|
||||
|
@ -52,6 +56,7 @@ func DefaultWebsocket() *Websocket {
|
|||
PongTimeout: DefaultPongTimeout,
|
||||
PingPeriod: DefaultPingPeriod,
|
||||
MaxMessageSize: DefaultMaxMessageSize,
|
||||
BinaryMessages: false,
|
||||
ReadBufferSize: 4096,
|
||||
WriteBufferSize: 4096,
|
||||
Headers: make(map[string]string, 0),
|
||||
|
|
20
websocket.go
20
websocket.go
|
@ -348,6 +348,7 @@ type (
|
|||
|
||||
websocketConnection struct {
|
||||
underline *websocket.Conn
|
||||
messageType int
|
||||
id string
|
||||
send chan []byte
|
||||
onDisconnectListeners []WebsocketDisconnectFunc
|
||||
|
@ -367,9 +368,10 @@ var _ WebsocketConnection = &websocketConnection{}
|
|||
|
||||
func newWebsocketConnection(websocketConn *websocket.Conn, s *websocketServer) *websocketConnection {
|
||||
c := &websocketConnection{
|
||||
id: utils.RandomString(64),
|
||||
underline: websocketConn,
|
||||
send: make(chan []byte, 256),
|
||||
id: utils.RandomString(64),
|
||||
messageType: websocket.TextMessage,
|
||||
underline: websocketConn,
|
||||
send: make(chan []byte, 256),
|
||||
onDisconnectListeners: make([]WebsocketDisconnectFunc, 0),
|
||||
onErrorListeners: make([]WebsocketErrorFunc, 0),
|
||||
onNativeMessageListeners: make([]WebsocketNativeMessageFunc, 0),
|
||||
|
@ -377,6 +379,11 @@ func newWebsocketConnection(websocketConn *websocket.Conn, s *websocketServer) *
|
|||
websocketServer: s,
|
||||
}
|
||||
|
||||
// set the messageType to binary if configuration says to
|
||||
if s.config.BinaryMessages {
|
||||
c.messageType = websocket.BinaryMessage
|
||||
}
|
||||
|
||||
c.self = newWebsocketEmmiter(c, c.id)
|
||||
c.broadcast = newWebsocketEmmiter(c, NotMe)
|
||||
c.all = newWebsocketEmmiter(c, All)
|
||||
|
@ -420,7 +427,8 @@ func (c *websocketConnection) writer() {
|
|||
}
|
||||
|
||||
c.underline.SetWriteDeadline(time.Now().Add(c.websocketServer.config.WriteTimeout))
|
||||
res, err := c.underline.NextWriter(websocket.TextMessage)
|
||||
|
||||
res, err := c.underline.NextWriter(c.messageType)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -435,10 +443,6 @@ func (c *websocketConnection) writer() {
|
|||
return
|
||||
}
|
||||
|
||||
// if err := c.write(websocket.TextMessage, msg); err != nil {
|
||||
// return
|
||||
// }
|
||||
|
||||
case <-ticker.C:
|
||||
if err := c.write(websocket.PingMessage, []byte{}); err != nil {
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue
Block a user