MATLAB可以与websocket交谈吗?

问题描述 投票:3回答:3

我想知道MATLAB是否可以与websocket交谈。如果是这样,我应该使用哪个MATLAB库?我需要在我的项目中使用这些信息,我通过rosbridge(连接到ROS的websocket服务器)在ROS和MATLAB之间进行通信。任何帮助将非常感激。

例如对于C,它是这样的:

  struct addrinfo *address;
  getaddrinfo("192.168.0.111", "9090", NULL, NULL);

  int sockfd = socket(PF_INET, SOCK_STREAM, 0);
  connect(sockfd, address->ai_addr, address->ai_addrlen);

  char* message = "raw\r\n\r\n";
  send(sockfd, message, strlen(message));
c matlab websocket ros
3个回答
4
投票

从该代码,它看起来像一个常规的TCP连接。 “websocket”意味着不同的东西。对于TCP连接,请使用此处的免费TCP / UDP / IP工具箱:

http://www.mathworks.com/matlabcentral/fileexchange/345-tcpudpip-toolbox-2-0-6

它至少与MATLAB Instrument Control Toolbox中提供的官方网络工具一样好。

等效代码看起来像这样:

con=pnet('tcpconnect','192.168.0.111', 9090); 
pnet(con,'printf','raw\r\n\r\n'); 
pnet(con,'close');

1
投票

我知道这是一个老问题,但我的答案可能会在将来帮助其他人(我希望)。

使用Matlab 2015a,在SIMULINK中有一个Robotics工具箱,您可以毫不费力地使用ROS。您可以毫无问题地订阅/发布到ROS主题。


1
投票

是的,它可以。

由Java WebSocket库支持的Matlab库

在GitHub上有一个几乎可行的MatlabWebSocket项目。使用包含的示例代码,您可以通过WebSocket建立连接和发送/接收消息。 MatlabWebSocket代码依赖于Java-WebSocket库并提供必要的回调代码。

我正在使用这个库,性能很棒。

Super simple Matlab client example

server = 'ws://echo.websocket.org';
client = SimpleClient(server);
client.send(char('Hello, world!'));
© www.soinside.com 2019 - 2024. All rights reserved.