套接字编程和 HTML5 WebSocket 和 REST 结合的未来 [关闭]
Posted
技术标签:
【中文标题】套接字编程和 HTML5 WebSocket 和 REST 结合的未来 [关闭]【英文标题】:Future of Socket Programming and HTML5 WebSocket and REST Combined [closed] 【发布时间】:2014-08-14 06:23:20 【问题描述】:我在 php 中创建了简单的 Socket Server,并用它制作了聊天应用程序。
套接字服务器在某个端口上工作,例如127.0.0.1:9999 所有客户端都通过该 IP:PORT 连接并与服务器握手并相互通信。
我的概念:
1) Browser
=> 通过 ( WebSocket ) 获取实时通知
2)User
=> 发表评论(想使用 REST 或简单的方式将评论保存在数据库中)
将我的帖子保存到数据库后,它应该广播给所有用户 GUI,没有任何 HTTP Request
(仅通过 WebSocket)。
所以,我的问题是,当用户在我的WebSocketServer
中发表评论时如何处理第二部分。
【问题讨论】:
-1 也允许,但我需要来自建筑师的解决方案架构。 您使用的是什么 REST 技术? PHP 与 REST 技术 【参考方案1】:我猜你可能想到的是这样的:
Browser
|
+----> REST/HTTP ---> Web Server (REST)
| |
| (*)
| |
| v
+-<--- WebSocket <--- WebSocket Server
浏览器做REST/HTTP请求,同时保持一个WebSocket连接接收实时通知。
浏览器向你的 Web/REST 服务器做 REST/CRUD 请求,当 REST 服务器执行 CRUD 操作时,它不仅响应请求者,还通过 WebSocket 向其他人发送通知。
有两个重要方面:
首先,WebSocket 是不够的,因为它只是原始的点对点消息传递)。您可能需要一些“发布和订阅”模式在 WebSocket 之上,以便对给定资源的 CRUD 操作只能向那些感兴趣并允许接收的浏览器/WebSocket 客户端发送通知相应资源的通知。
其次,根据您的 Web 服务器的技术,您希望 () 尽可能简单(例如,通过简单的 HTTP 请求 来自 执行 ()您的 Web 服务器到 WebSocket 服务器)。
以上都提供,例如Crossbar.io:
Crossbar.io 是一个WAMP 路由器,WAMP(“Web 应用程序消息传递协议”)通过 WebSocket 提供“发布和订阅”功能。 Crossbar.io 有一个内置的 HTTP-to-WAMP 桥,允许您通过执行普通的旧 HTTP 请求进行发布。有关示例,请参阅here。
披露:我隶属于 WAMP 和 Crossbar.io。
【讨论】:
请查看我更新的问题详情 请注意,在上图中,通知是通过WebSocket。只有 ( * ) 使用 HTTP。如果你想摆脱 ( * ),你需要一个可以原生运行 WebSocket 的 Web 服务器技术。以上是关于套接字编程和 HTML5 WebSocket 和 REST 结合的未来 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 Websocket 在发送消息之前等待连接和就绪状态更改