套接字编程和 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 连接

HTML5 Websocket 在发送消息之前等待连接和就绪状态更改

websocket个人理解总结

网络编程WebSocket 和socketHTTP的区别和联系

Jetty:套接字连接作为 websocket 连接

带有 Python 的 HTML5 套接字