| 477 | } |
| 478 | |
| 479 | func (s *socketConn) Write(b []byte) (int, error) { |
| 480 | s.writeMutex.Lock() |
| 481 | defer s.writeMutex.Unlock() |
| 482 | |
| 483 | w, err := s.Conn.NextWriter(websocket.BinaryMessage) |
| 484 | if err != nil { |
| 485 | return 0, fmt.Errorf("error getting next writer: %w", err) |
| 486 | } |
| 487 | |
| 488 | n, err := w.Write(b) |
| 489 | if err != nil { |
| 490 | return 0, fmt.Errorf("error writing: %w", err) |
| 491 | } |
| 492 | |
| 493 | if err := w.Close(); err != nil { |
| 494 | return 0, fmt.Errorf("error closing writer: %w", err) |
| 495 | } |
| 496 | |
| 497 | return n, nil |
| 498 | } |
| 499 | |
| 500 | func (s *socketConn) SetDeadline(deadline time.Time) error { |
| 501 | if err := s.Conn.SetReadDeadline(deadline); err != nil { |