WebSocket提供了一种像人类说话一样的双向交流。客户端可以向服务器发送数据,服务器可以随时向客户端发送数据。但是,请求-响应行为如何呢?客户端可以向服务器发出请求并等待响应。Websocket似乎没有提供任何东西来将客户端数据(请求)链接到服务器数据(响应)。
这可能是子协议的工作,我对如何做到这一点有一些想法(随请求一起发送一个ID,并在超时时间内等待使用相同ID的响应)。
为了不重复发明轮子并节省一些时间,我在互联网上寻找了一个现有的解决方案,但我没有找到任何相关的东西(可能是糟糕的关键字)。
那么,有没有人知道这种工作,或者我错过了什么?
发布于 2012-06-04 22:13:49
为此,WebSocket应用程序消息传递协议(WAMP) https://wamp-proto.org/在原始WebSocket之上提供了Remote Call和PubSub (Publish & Subscribe)消息模式。
WAMP是一个合适的JSON子协议,使用WebSocket作为传输协议,使用WebSocket作为有效载荷格式。RPC是使用3条消息实现的,这些消息包含一个“调用ID”,用于将异步RPC服务器响应与客户端发起的过程调用相关联。
免责声明:我是WAMP和一些(开源) WAMP实现的作者。这是一个开放的倡议,其他人已经开始上船了。最终,应该有一个正确定义协议的WAMP RFC。但它仍处于早期阶段。
发布于 2013-02-13 23:16:51
我会使用JSON-RPC 2.0。
http://www.jsonrpc.org/specification
每条消息都是一个JSON对象。协议声明它是需要响应(与id耦合)的呼叫,还是需要通知的呼叫。
支持JSON-RPC的应用程序可以很容易地检查消息对象是否包含表示调用的方法,或者不包含表示响应的方法。
我将构建一个javascript库来处理websocket上的json rpc,并使用ajax作为备用…。
发布于 2012-07-20 02:37:56
看看SwaggerSocket,它是基于WebSockets协议的REST,所有主要的WebServer都支持它。
https://stackoverflow.com/questions/10882370
复制相似问题