(我对RESTFul不熟悉,如果我的概念错了,请纠正我)
在RESTFul体系结构中,我们将每个操作映射到URL.如果我点击“发表文章”,它可能实际上是URL http://example.com/,而某些数据操作= post& content = blahblah.
如果我想发布,但不刷新整个网页,我可以使用javascript的XMLHTTPRequest.我发布它,然后得到它的内容,并将其插入我的页面中的div.这些操作都是异步的.
然后我知道有一些名为WebSocket的东西,它是包装器socket.io.它使用“消息”在客户端和服务器之间进行通信.当我点击“发布”时,客户端只需调用socket.send(data)并等待服务器的client.send(data).这太神奇了.但是URL怎么样?
可以在不重复自己的情况下使用这两种模型吗?换句话说,每个动作都有它的URL,其中一些可以实时与用户交互(通过socket.io?)
而且,我应该这样做吗?在一个非常互动的网络程序(例如游戏)中,RESTFul仍然有意义吗?
解决方法
您正在为通过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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。