是的,AWS Lambda函数可以直接通过WebSocket进行通信,下面是一个简单的示例:
在Lambda代码中,您可以使用以下Node.js代码来创建WebSocket连接:
const WebSocket = require('ws');
exports.handler = async (event, context) => { const webSocket = new WebSocket('ws://example.com/'); await new Promise(resolve => webSocket.on('open', resolve)); webSocket.send('Hello, WebSocket!');
return { statusCode: 200, body: 'Message sent' }; };
您还可以使用aws-sdk-js SDK来创建WebSocket连接。这需要您在Lambda函数的IAM角色中添加“websocket:Connect”和“iot:Connect”权限。下面是一个使用aws-sdk-js的示例:
const AWS = require('aws-sdk'); const iot = new AWS.Iot();
exports.handler = async (event, context) => { const endpoint = await iot.describeEndpoint().promise(); const webSocket = new WebSocket(endpoint.endpointAddress); await new Promise(resolve => webSocket.on('open', resolve)); webSocket.send('Hello, WebSocket!');
return { statusCode: 200, body: 'Message sent' }; };
这些代码示例只是WebSocket通信的简单示例。您可以在AWS文档中查找更多有关WebSocket通信的信息。