我正在阅读关于Rails 5动作电影简介的精彩post。它说:" Action Cable使用Rack socket劫持API来接管来自应用服务器的连接。 &#34 ;.什么是"套接字劫持"意思?
答案 0 :(得分:4)
套接字劫持是使用rack 1.5.0
实现的 - 模块化的Ruby Web服务器接口。
Rack 1.5.0
基本上提供了一个简单且适应性强的界面,用于在rails中开发应用程序。它通过简单地包装HTTP请求及其响应来实现此目的。它还将Web服务器,Web框架和中间件的API组合到单个方法调用中。
因此,在rack 1.5.0
套接字中,hijacking用于允许rails应用程序超越客户端套接字并对其执行其他操作。这些操作包括:
WebSockets 允许用户向服务器发送消息并接收事件驱动的响应,而无需轮询服务器以进行回复。
如下图所示 - 正如您所看到的,一旦打开WebSocket连接,就可以在用户和服务器之间发送和接收消息。
无论如何,在您指定的 Rack Socket Hijacking API 中,它基本上提供了两种模式:
完整劫持API
部分劫持API
所以 - 最后,套接字劫持基本上允许ruby / rails应用程序覆盖/超越客户端套接字并在其上执行不同的功能,或者在您编写时 - 控制来自应用程序服务器的连接。