Are there any plans to implement prepared writes?
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- go
- Lĩnh vực
- backend-api-design, networking
Hướng nghiên cứu
Bắt đầu bằng cách xem xét API ghi hiện có của websocket.Conn trong thư viện và các điểm vào được đề xuất PrepareMessage và WritePrepared, sau đó so sánh hành vi được trích dẫn của gorilla/websocket và lxzan/gws. Xác định API, các tương tác với việc nén và vòng đời của thông điệp trước khi triển khai; được xem là hoàn tất khi có một thiết kế đã được thống nhất, hỗ trợ việc tái sử dụng cho các broadcast giống hệt nhau.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I'm currently working on a websocket-based broadcasting server and would be more then happy to use this great library, but there is no prepared writes functionality, like in some other websocket libraries (e.g. gorilla/websocket and lxzan/gws). This would help a lot to optimize the broadcasting of identical messages. Are there any plans to implement this feature in some way (or accept PRs that implements it)?
I'm not sure how the API should look like, but it would be cool to have something similar.
var connections []*websocket.Conn
// Create prepared message without frames generation.
pm := websocket.PrepareMessage(websocket.MessageText, []byte("hello"))
defer pm.Close()
for _, c := range connections {
// Lazily initialize frame buffer for "pm" and reuse it for other connections.
// For each set of compression settings (mode and threshold), there will be separate pre-initialized frame
// buffers, so if some connections don't have compression enabled and some do have, then two types of
// frame buffers will be initialized for each of them.
if err := c.WritePrepared(ctx, pm); err != nil {
log.Printf("failed to write prepared message: %v\n", err)
}
}
- Ngôn ngữ chính
- Go
- Star
- 5.5k
- Fork
- 377
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của coder/websocket
-
Must not wrap io.EOF Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
export wstest Đang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
Tất cả issue của coder/websocket
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
bug group: validation priority: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
codecheckers/chekhov#51 ·
-
Creating worktree from an existing remote branch with a slash in it, has unexpected behaviour Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100