目录
- 我们将在本博客中学习如何用API网关制作Websocket API。让我们先快速了解一下API。
- 什么是API?
- 什么是WebSocket API?
- 现在让我们建立一个Websocket API网关。
- 第1步:创建一个Lambda函数
- 第2步:部署应用程序
- 第3步:WebSocket API网关
- 第4步:测试WebSocket API
- 分享Knol。
- 相关内容
阅读时间: 4 分钟
我们将在本博中学习如何用API网关制作Websocket API。让我们先快速了解一下API。
什么是API?
API是应用编程接口的意思,它是一种软件中介,允许两个应用程序相互通信。
什么是WebSocket API?
在API Gateway中,WebSocket API是一组WebSocket路由,它与后端HTTP端点、Lambda函数或其他AWS服务相连。
WebSocket的API是双向的。客户端可以向服务发送消息,服务也可以自己向客户端发送消息。因为服务可以向客户推送数据,而不需要客户提出明确的请求,这种双向行为可以实现更丰富的客户/服务互动。实时应用程序,如聊天应用程序、协作平台、多人游戏和金融交易平台,经常使用WebSocket API。
现在我们来构建一个Websocket API网关。
先决条件。
- AWS账户
第1步:创建一个Lambda函数
AWS Lambda是一种无服务器、事件驱动的计算服务,可以让你为几乎任何类型的应用程序或后端服务运行代码,而无需配置或管理服务器。
进入AWS服务,点击lambda服务,创建一个函数,将其连接到API网关。Lambda函数的用户界面如下所示。点击创建函数按钮,开始创建Lambda函数。
点击 创建函数,从无服务器应用库中创建一个函数。键入WebSockets,然后打勾。
这显示了如何使用应用程序创建自定义IAM角色和资源策略。
在这个例子中,我们将选择simple-WebSockets-chat-app,它是由API Gateway团队创建的。
第2步:部署应用程序
我们将部署这个应用程序,它将产生onConnect、OnDisconnect和sendMessage等功能。
因此,应用程序的名称是simple-WebSockets-chat-app,表的名称是simplechat_connections,DynamoDB用于存储每个客户端的连接标识符。
勾选复选框并 部署该功能。
我们可以看到DynamoDB表包含连接、API网关部署、3个Lambda函数、OnConnect函数、OnDisconnect函数和sendMessage函数。
第3步:WebSocket API网关
回到AWS管理控制台,从网络和内容交付服务列表中选择API网关。
我们会看到一个SimpleChatWebSocket应用程序,协议为WebSocket。
打开这个应用程序。路由选择表达式是$request.body.action,它将包含动作键,这将路由到特定的路由。
第4步:测试WebSocket API
打开Cloud Shell并安装wscat,这将有助于我们测试API。
sudo npm install -g wscat
通过进入Stages然后进入Prod获取WebSocket URL。
接下来运行wscat -c
,进行连接
wscat -c wss://5osuw1gszf.execute-api.us-east-1.amazonaws.com/Prod
当我们连接时,它会运行到OnConnect函数。
然后到DynamoDB
我们可以发送一些消息,所以我们需要打开JSON消息调用到行动。
第一个键将是 "action
",接下来将是 "sendmessage
",它将从API网关路由表达,然后是"data",
"本身将是"hello world!
"。
{ "action" : "sendmessage", "data" : "hello world!"}
因此,当我们发送这个消息时,我们把它发送到lambda函数,这将从服务器返回到hello world。
现在打开一个新标签,把它分成几列,再次运行wscat
,我们将有一个新的客户端连接。再次发送消息。
{ "action" : "sendmessage", "data" : "hello world Again!"}
如果我们去DynamoDB控制台,可以看到两个连接ID。
我们也可以通过将列拆分成三列来再次测试。我们将看到消息被所有的客户发送和接收,即他们可以聊天。
结论
我们已经学会了如何使用API网关制作一个Websocket API。
请阅读关于使用API网关创建REST API和更多关于**DevOps的信息。**