| <?xml version="1.0" encoding="US-ASCII"?> |
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> |
| |
| <rfc category="info" docName="sp-websocket-mapping-01"> |
| |
| <front> |
| |
| <title abbrev="WebSocket mapping for SPs"> |
| WebSocket Mapping for Scalability Protocols |
| </title> |
| |
| <author fullname="Martin Sustrik" initials="M." role="editor" |
| surname="Sustrik"> |
| <address> |
| <email>sustrik@250bpm.com</email> |
| </address> |
| </author> |
| <author fullname="Garrett D'Amore" initials="G." |
| surname="D'Amore"> |
| <address> |
| <email>garrett@damore.org</email> |
| </address> |
| </author> |
| |
| <date month="February" year="2015" /> |
| |
| <area>Applications</area> |
| <workgroup>Internet Engineering Task Force</workgroup> |
| |
| <keyword>WebSocket</keyword> |
| <keyword>SP</keyword> |
| |
| <abstract> |
| <t>This document defines the WebSocket mapping for scalability |
| protocols.</t> |
| </abstract> |
| |
| </front> |
| |
| <middle> |
| |
| <section title = "Underlying protocol"> |
| |
| <t>This mapping should be layered on the top of WebSocket protocol |
| as defined in RFC 6455.</t> |
| |
| </section> |
| |
| <section title = "Connection initiation"> |
| |
| <t>Standard WebSocket handshake is done following RFC 6455.</t> |
| |
| <t>The Sec-WebSocket-Protocol field |
| MUST be set in the client's HTTP request to match the protocol used |
| by the WebSocket server. Accordingly, the following values should |
| be used.</t> |
| |
| <t>pair.sp.nanomsg.org (NN_PAIR client and server)</t> |
| <t>req.sp.nanomsg.org (NN_REQ server, NN_REP client)</t> |
| <t>rep.sp.nanomsg.org (NN_REP server, NN_REQ client)</t> |
| <t>pub.sp.nanomsg.org (NN_PUB server, NN_SUB client)</t> |
| <t>sub.sp.nanomsg.org (NN_SUB server, NN_PUB client)</t> |
| <t>surveyor.sp.nanomsg.org (NN_SURVEYOR server, NN_RESPONDENT client)</t> |
| <t>respondent.sp.nanomsg.org (NN_RESPONDENT server, NN_SURVEYOR client)</t> |
| <t>push.sp.nanomsg.org (NN_PUSH server, NN_PULL client)</t> |
| <t>pull.sp.nanomsg.org (NN_PULL server, NN_PUSH client)</t> |
| <t>bus.sp.nanomsg.org (NN_BUS client and server)</t> |
| |
| <t>If the server supports the requested SP protocol as indicated |
| by the Sec-WebSocket-Protocol header, then it MUST respond with |
| the same Sec-WebSocket-Protocol value sent by the client.</t> |
| |
| <t>If the server does support the requested SP protocol, then it MUST |
| fail the WebSocket connection using the Close code of 1002, as |
| specified in RFC 6455.</t> |
| |
| <t>For example, an NN_REQ client socket, connecting to |
| an NN_REP server, will send the value rep.sp.nanomsg.org in |
| the Sec-WebSocket-Protocol field. The NN_REP socket on the |
| server would then include the same rep.sp.nanomsg.org in its |
| response.</t> |
| |
| </section> |
| |
| <section title = "Message"> |
| |
| <t>SP message maps directly to WebSocket message. The message can be |
| fragmented as needed. Frame boundaries are ignored by the SP |
| layer.</t> |
| |
| <t>When possible, binary frames SHOULD be used in preference to |
| text frames. If text frames are in use, then SP message payloads |
| MUST be comprised of legal UTF-8 text only.</t> |
| |
| </section> |
| |
| <section anchor="IANA" title="IANA Considerations"> |
| <t>This memo includes no request to IANA.</t> |
| </section> |
| |
| <section anchor="Security" title="Security Considerations"> |
| <t>The mapping isn't intended to provide any additional security in |
| addition to what WebSocket does. DoS concerns are addressed within |
| the specification.</t> |
| </section> |
| |
| </middle> |
| |
| </rfc> |