Websocket: рд╕рдорд░реНрдерди WebAssembly / рдЧреЛрдлрд░рдЬреЗрдПрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рд╕рд┐рддре░ 2018  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gorilla/websocket

рдЬрдмрдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореМрдЬреВрдж рд╣реИ:
https://github.com/gopherjs/websocket

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдЕрдкрдиреЗ рдЧреЗрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рджреЗрд╢реА рдФрд░ рд╡реЗрдм рдкрд░ рдЪрд▓рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореБрдЭреЗ GopherJS / WebAssembly рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдФрд░ рдХреЛрдб рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

feature request help wanted waiting on new maintainer

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХрд┐рд╕реА рдХреЛ рднреА, рдЬрд┐рд╕реЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ @Bbrow рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЕрдкрдиреЗ WebSocket рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ v1.6.3 рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред

Https://godoc.org/nhooyr.io/websocket#hdr -Wasm рджреЗрдЦреЗрдВ

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдорд╛рд▓рд┐рдХ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдкрд░реЗрдЦрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреЛ рд░реВрдкрд░реЗрдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:

  • рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ API рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рд╡реЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреА рдЬреЛ рдХреЗрд╡рд▓ WritePeparedMessage рдЬреИрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ?
  • рдХреЙрди рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЕрдВрдбрд░рд▓рд┐рдВрдХрд┐рдВрдЧ, рд╕реЗрдЯрдкрд┐рдВрдЧрд╣реИрдВрдбрд▓рд░, рд╕реЗрдЯрдкреЙрдиреНрдЧрд╣реИрдВрдбрд▓рд░, ...)?
  • рдбрд╛рдпрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ред Subprotocols рдлрд╝реАрд▓реНрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбрд╛рдпрд▓рд░ рдлрд╝реАрд▓реНрдб рд╣реИред рдбрд╛рдпрд▓ рдкрджреНрдзрддрд┐ рдХреЗ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рддрд░реНрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
  • рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреЛрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд░реНрддрдорд╛рди рдХреЛрдб рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рджреЛ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рдкреИрдХреЗрдЬ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреИрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

  • рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рд╢реБрд░реВ рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди NodeJS рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ?
  • рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ SetPingHandler рдФрд░ SetPongHandler no-op рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ (рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╕рдордп рд╕реАрдорд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)
  • рд╣реЗрдбрд░ рддрд░реНрдХреЛрдВ рдкрд░ рджрд╣рд╢рдд рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдЖрдк рд╡реЗрдм / рдиреЗрдЯрд┐рд╡ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрди рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
  • Wasm рдФрд░ рдЧреИрд░-wasm рдХреЛрдб рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдмрдирд╛рдПрдБред

рд╣реЗрдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдХреНрдпрд╛ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдбрд╛рдпрд▓реНрд╕ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╣реИ? рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рдиреЗ рдкрд░, рдХреБрдХреАрдЬрд╝, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдФрд░ рдЕрдиреНрдп рд╣реЗрдбрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрд╛рд╣рд░ рдЪрд▓рдиреЗ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрди рд╕рднреА рд╣реЗрдбрд░ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдПрдХ рдмрд╛рд░ рдХрдиреЗрдХреНрд╢рди рд╣рд╛рде рд▓рдЧрдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛрдб рд╕рдВрднрд╡ рд╣реИред

рдорджрдж рдЪрд╛рд╣рддрд╛ рдерд╛: рдкреИрдХреЗрдЬ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрд╕рдореВрд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдпрд╣ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ WebAssembly рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рдорджрдж рдХреА pion / WebRTC рдФрд░ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдкреАрдЖрд░ рд╣реИ goleveldb ред рдореБрдЭреЗ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП WebAssembly рд╕рдорд░реНрдерди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛрдЧреА рдФрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ libp2p / go-ws-transport рдФрд░ 0xProject / 0x-mesh (рдХрд╛рдо рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ?

gorilla/websocket рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ WebAssembly рд╕рдорд░реНрдерди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдард┐рди рд╣реИред рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрд╢реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рдпрд╣ pion / webrtc рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рдФрд░ рдЧреЛрд▓реЗрд╡реЗрд▓реНрдб рдХреА рдмрд╛рд░реАрдХреА рд╕реЗ рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рднрдВрдбрд╛рд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдмрд┐рд▓реНрдХреБрд▓ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП)ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп libp2p / go-ws-transport рдкреИрдХреЗрдЬ рдореЗрдВ WebAssembly рд╕рдорд░реНрдерди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди

рдХрд┐рд╕реА рдХреЛ рднреА, рдЬрд┐рд╕реЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ @Bbrow рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЕрдкрдиреЗ WebSocket рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ v1.6.3 рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред

Https://godoc.org/nhooyr.io/websocket#hdr -Wasm рджреЗрдЦреЗрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

antiWalker picture antiWalker  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

exapsy picture exapsy  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

IngCr3at1on picture IngCr3at1on  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bcashier picture bcashier  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

joshdvir picture joshdvir  ┬╖  50рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ