NextWriter returns a writer for the next message to send. The writer's Close method flushes the complete message to the network. There can be at most one open writer on a connection. NextWriter closes the previous writer if the application has not already done so. All message types (TextMessage, B
(messageType int)
| 516 | // All message types (TextMessage, BinaryMessage, CloseMessage, PingMessage and |
| 517 | // PongMessage) are supported. |
| 518 | func (c *Conn) NextWriter(messageType int) (io.WriteCloser, error) { |
| 519 | var mw messageWriter |
| 520 | if err := c.beginMessage(&mw, messageType); err != nil { |
| 521 | return nil, err |
| 522 | } |
| 523 | c.writer = &mw |
| 524 | if c.newCompressionWriter != nil && c.enableWriteCompression && isData(messageType) { |
| 525 | w := c.newCompressionWriter(c.writer, c.compressionLevel) |
| 526 | mw.compress = true |
| 527 | c.writer = w |
| 528 | } |
| 529 | return c.writer, nil |
| 530 | } |
| 531 | |
| 532 | type messageWriter struct { |
| 533 | c *Conn |