WebSocket API
自定义WebSocket API允许您在运行时在Labvanced和任何其他服务器之间创建连接。这本质上允许在Labvanced服务器和您指定的其他服务器之间实现双向数据传输。如果您只需要单向发送数据(即直接将其保存到您的服务器),请参见Webhook API的文档。
一些可以利用WebSocket API的实验示例如下:
- 一个您希望从Labvanced发送/接收实验触发器(例如试验/刺激开始或参与者反应)到EEG系统、眼动追踪系统或其他本地数据记录设备的实验。
- 一个您希望通过互联网将在线录制的数据发送到其他服务器/API进行处理的实验(例如某些AI/机器学习过程或实时数据分析)。
- 一个您希望在Labvanced和某个可以本地或远程运行的其他过程之间创建双向通信的实验(例如用于BCI、生物反馈或其他闭环系统)。
在将Labvanced与本地服务器(例如用于连接设备)连接的情况下,您目前可以通过简单的脚本(如下所述)和在Labvanced研究编辑器中设置事件来完成。在未来,Labvanced桌面应用程序中的集成解决方案将可用,您可以通过单击按钮建立此连接。
脚本解决方案
通过使用脚本,您可以自定义基本的Python代码,这要求您运行脚本,并最终允许灵活满足研究需求。通过运行一个单独的Python脚本,Labvanced与WebSocket API进行通信,而Python则与外部设备进行通信。
WebSocket API配置通过指向特定的端口和IP进行工作。然后,这在Python代码中反映出来。通过相互指向,建立了通过WebSocket API的通信线路。
**注意:**要查看连接,可以使用GUI来进行此半自动过程。
我们之前的方法(直接在Labvanced程序中嵌入)有点局限,并且在不同操作系统上难以运行。因此,现在,通过这些新的Python脚本,它应该可以在所有平台(Linux、MacOS、Windows)上运行,并且应该可以双向发送和接收LSL流数据。
您需要做的尝试:
- 使用类似_pip install -r requirements.txt_的方式安装4个所需库
- 然后,您可以在与Labvanced实验将要启动的同一台机器上在后台启动(以接收Labvanced中的LSL标记)python3 lsl_marker_receive.py或(以从Labvanced发送LSL标记)python3 lsl_marker_send.py。
注意:如果您想要特定的LSL参数或流名称,您也可以轻松调整这些脚本。
在我们的GitHub WebSocket API库中,您可以找到两个示例Python脚本,用于从Labvanced实验中发送或接收LSL标记,以及关于如何设置它的更详细说明,位于Lab Streaming Layer文件夹中。
您还可以从我们的公共实验库中导入这个Socket连接示例研究,查看事件是如何设置的。
利用WebSocket API进行LSL集成的实验示例
在Labvanced研究库中有两个与上述对应的示例研究:
发送LSL标记(lsl_marker_send.py): https://www.labvanced.com/page/library/53231
接收LSL标记(lsl_marker_receive.py): https://www.labvanced.com/page/library/53230
请注意,在导入或检查这些示例研究时,您会在它们的“研究设置”中看到“实验功能”子部分的“WebSocket连接”复选框是选中的,并包含连接详细信息,以确保Labvanced实验可以连接到同一计算机上运行的Python脚本,如下图所示: