Lai*_*uan 35 node.js socket.io restful-architecture
(我对RESTFul不熟悉,如果我的概念错了,请纠正我)
在RESTFul体系结构中,我们将每个操作映射到URL.如果我点击"发表文章",可能它实际上是URL http://example.com/和一些数据action=post&content=blahblah.
如果我想发布,但不刷新整个网页,我可以使用javascript的XMLHTTPRequest.我发布它然后得到它的内容并将其插入我的页面中的div.这些操作都是异步的.
然后我知道有一些名字WebSocket和它的包装socket.io.它使用"消息"在客户端和服务器之间进行通信.当我点击"发布"时,客户端只需要调用socket.send(data)并等待服务器client.send(data).这很神奇.但URL怎么样?
可以在不重复自己的情况下使用这两种模型吗?换句话说,每个动作都有它的URL,其中一些可以实时与用户交互(通过socket.io?)
而且,我应该这样做吗?在一个非常互动的网络程序(例如游戏)中,RESTFul仍然有意义吗?
Jos*_*osh 37
您正在为通过http映射到REST的操作定义处理程序.POST和GET通常是指对实体的更新和查询.绝对没有理由不能为这两种情境中可以使用的CRUD操作的泛型版本定义处理程序.我通常这样做的方法是将"路由"的概念引入实时传输,并将它们映射回相同的CRUD处理程序.
你有一个会话,你可以施加相同的ACL等.
+---------------------------------+
| |
| BROWSER |
| |
+--+--^-------------------+---^---+
| | | |
| | | |
+--v--+---+ +--v---+---+
| | | |
| HTTP | | SOCKET.IO|
+--+---^--+ +--+---^---+
| | | |
+--v---+------------------v---+---+
| |
| ROUTING/PUBSUB |
+-+--^-------+--^-------+--^------+
| | | | | |
+-v--+--+ +-v--+--+ +-v--+-+
| | | | | |
| USERS | | ITEMS | |ETC |
+-------+ +-------+ +------+
ENTITY CRUD HANDLERS
Run Code Online (Sandbox Code Playgroud)
Tom*_*und 32
我最近在我的博客上发布了这个:
为WebSockets设计CRUD API
构建Weld时,我们使用REST和WebSockets(Socket.io).WebSockets上的三个观察结果:
我的解决方案
"AppServer/user/create".| 归档时间: |
|
| 查看次数: |
28285 次 |
| 最近记录: |