问题标签 [libwebsockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1594 浏览

c - libwebsockets:如何使用请求存储 IP 地址

当使用 libwebsockets 作为服务器时,我很难理解我应该如何捕获客户端 IP 地址。

根据我对文档的了解,libwebsockets_get_peer_addresses仅可在LWS_CALLBACK_FILTER_NETWORK_CONNECTION回调中使用,但此时用户数据结构似乎尚未初始化,因此任何在此处存储的尝试都会出现段错误。

我本来希望 IP 地址在请求标头中,就像 Apache 或 nginx 等其他 Web 服务器一样,但在这个库中,它似乎仅可用于请求过程的特定部分,并且不会复制到标头中.

这就是我在 LWS_CALLBACK_FILTER_NETWORK_CONNECTION 中尝试的内容:

我已经测试了strncpy另一个回调(LWS_CALLBACK_HTTP)的内部,所以我知道它在初始化后应该可以工作。pss

任何帮助将不胜感激,因为我发现该库的文档很难理解。

0 投票
1 回答
144 浏览

c - 关闭优化时 C 库崩溃

我正在使用 XCode 6 在 Mac OS X 上用 C 语言编写一个库。该库基本上是一个由X-Plane加载的插件,并通过 Web 套接字服务器提供数据。

反过来,该库使用libwebsockets库,该库是我使用开发人员存储库文档中的指南编译的,此处。简而言之,我检查了 libwebsockets 存储库,创建了一个构建目录并运行

我的插件 100% 工作,X-Plane 加载它没有任何抱怨......当优化开启时!

当我在 XCode 中禁用对我的库的优化时,将其禁用为None [-O0]时,废话击中了风扇,并且当调用 libwebsockets 函数libwebsocket_create_context()时,库崩溃了。

关闭优化时如何引入错误/崩溃?通常不是相反,打开优化可能会出错吗?

这是围绕故障点的库代码的摘录:

0 投票
0 回答
994 浏览

c - 如何在 libwebsocket 中获取 ping 间隔?

我使用 libwebsocket 作为客户端与 socketIO 通信。我想通过发送 ping 数据包来保持连接。我知道在协议协商期间我们会得到 ping 间隔和 ping 超时。但我无法在 libwebsocket 上下文中找到它。

0 投票
1 回答
36208 浏览

c - 如何在 Ubuntu 中安装 libwebsocket 库?

我正在尝试在我的 ubuntu 中安装 libwebsocket。

所以我下载了项目https://github.com/warmcat/libwebsockets 解压它并按照安装说明进行操作。

我键入命令 cmake FH 并收到以下消息。

我试图编译一个使用 libwebsocket.h 的 C 程序,它告诉我它不存在。谁能告诉我安装这个库的正确方法。谢谢你的帮助 。

0 投票
2 回答
3108 浏览

c - libwebsocket 发送有效载荷限制

我有 libwebsocket 客户端来发送二进制数据。我已将二进制数据保存到缓冲区 [即 buf] 并写入套接字。

我的问题是套接字只能写入 22392 字节 [正如我收到的 n = 22392]。当我的 l >=22392 字节时,它被视为部分写入。该值因各种架构而异。

问题:

  • libwebsocket 中的数据大小是否有任何限制?

  • 有什么方法可以扩展缓冲区有效负载值?

0 投票
1 回答
1105 浏览

websocket - libwebsockets 发送 websocket 关闭原因

我正在使用 libwebsockets C 库来编写 websocket 服务器。根据库文档,提到要从服务器端关闭 websocket 连接,我们需要在回调中返回 -1。当我这样做时,websocket 连接正在关闭,但它没有发送任何原因。

我想发送正常关闭作为关闭 websocket 连接的原因。有没有办法实现这个 libwebsockets。我已经看到 libwebsockets 库有“enum lws_close_status”,但是没有 api 可以使用那个。

0 投票
1 回答
12175 浏览

websocket - WebSockets 服务器架构如何工作?

我试图更好地理解服务器端架构如何为 WebSockets 工作,目的是在嵌入式应用程序中实现它。似乎这里有 3 个不同的服务器端软件组件在起作用:1) 用于服务静态 HTTP 页面和处理升级请求的 Web 服务器,2) 一个 WebSockets 库,例如 libwebsockets,用于处理 WebSockets 通信的“具体细节” , 和 3) 我的自定义应用程序来实际弄清楚如何处理传入的数据。所有这些如何结合在一起?拥有一个单独的 Web 服务器和 WebSocket 处理件(又名 WebSocket 服务器/守护程序)是否常见?

我的应用程序如何与 Web 服务器和/或 WebSockets 库通信以发送/接收数据?例如,使用 CGI,Web 服务器使用环境变量向自定义应用程序发送信息,并使用标准输出接收响应。这里的等效通信系统是什么?还是您通常将 WebSocket 库链接到客户应用程序?但是,Web 服务器与 WebSocket 库 + 自定义应用程序的通信将如何工作?还是全部 3 个组合成一个组件?

这就是我问的原因。我在内存有限的 Blackfin 处理器上的 uClinux/no MMU 平台上使用 boa Web 服务器。boa 中没有原生 WebSocket 支持,只有 CGI。我试图弄清楚如何向其中添加 WebSockets 支持。我更喜欢使用编译的解决方案,而不是解释的东西,如 JavaScript、Python 或 PHP。我当前的应用程序在 CGI 上使用长轮询,它不能为计划的增强提供足够的性能。

0 投票
2 回答
2757 浏览

c++ - 如何防止 libwebsockets 客户端超时

我正在尝试使用 libwebsockets 创建一个 C++ websocket 客户端,但由于超时而无法建立连接。我已经剥离了一些东西进行测试,这就是我用来建立连接的东西:

协议

创建上下文

创建客户端

注意:地址“ws://localhost”我也试过“ws://echo.websocket.org”。localhost 服务器是一个 Node & ws 应用程序,我已经使用 Chrome 进行了测试并且运行良好。

服务上下文

输出 当我运行上面的代码时,这是我通过 libwebsockets 日志回调得到的输出:

我查看了所有我可以使用的 libwebsockets 示例/文档,但无法获得有关如何解决此问题的任何信息。任何帮助将不胜感激,并阻止我通过显示器。

0 投票
1 回答
402 浏览

c - 如何在不使用回调函数的情况下使用 libwebsockets 将数据从 C 程序发送到 websocket?

对于一个项目,我们使用 libwebsockets 与网络服务器通信。问题是我们只能在收到数据时从C程序向webserver发送数据,而不能在任何我们想发送的时刻发送数据。有什么方法可以在不使用 libwebsockets 接收数据的情况下发送数据?

0 投票
1 回答
1001 浏览

java - Jetty WebSocket 客户端不适用于二进制侦听器

我有一个使用 Jetty WebSocket Client 版本 9.x 的 Java 应用程序。它适用于从服务器发送的文本消息,但永远不会调用二进制侦听器。我有一个 Javascript 客户端实现,我基本上是在复制它。我在 Javascript 中执行与在 Java 中执行相同的操作,调用同一台服务器。Javascript 可以工作,而 Java 不行。所以我认为在 Jetty 中没有为二进制侦听器正确配置某些东西。

例如,服务器正在发送 blob 数据。我知道在 Javascript 客户端中,我可以将 binarytype 设置为 arraybuffer 或 blob。我认为 Jetty 中可能需要类似的设置,但我已经查看了整个 API 并在线搜索了许多示例。在线二进制侦听器的示例很少,并且没有提及设置二进制类型或使二进制侦听器工作所需的任何其他特殊设置。

这是我的代码的统一表示。代码分布在各个类中,所以这不是一个独立的应用程序,但我认为它显示了我在做什么。服务器是用 libwebsockets 实现的。

客户端实现

套接字实现