问题标签 [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 投票
1 回答
1095 浏览

c++ - 如何使用调试构建 libwebsockets(即 -g 以便我可以使用 gdb)?(我在 libwebsockets 函数 ssl_ctrl() 上遇到段错误)

供您参考(因为我在下面提到了库函数),libwebsockets 文档可以在这里找到:https ://github.com/warmcat/libwebsockets/blob/master/libwebsockets-api-doc.html#L466

站点可以在这里找到:http: //libwebsockets.org/trac/libwebsockets

我的问题是,如果我为 libwebsocket_client_connect() 函数的 ssl_connection 参数传入 1 或 2,则会出现段错误。

我的代码是用 C++ 编写的。

想知道它发生在哪里,我在 gdb 中运行了我的代码(在添加了 -g 标志之后)。在段错误之后,我运行回溯。这就是我得到的:

来自 /lib/x86_64-linux-gnu/libssl.so.1.0.0 (gdb) 回溯的 SSL_ctrl () 中的 0x00007ffff7748c43

0 0x00007ffff7748c43 in SSL_ctrl () from /lib/x86_64-linux-gnu/libssl.so.1.0.0

1 0x00007ffff7503aa2 在来自 /usr/local/lib/libwebsockets.so.5.0.0 的 lws_client_socket_service ()

2 0x00007ffff74fe606 in libwebsocket_service_fd () from /usr/local/lib/libwebsockets.so.5.0.0

3 0x00007ffff7504029 在来自 /usr/local/lib/libwebsockets.so.5.0.0 的 libwebsocket_client_connect_2 ()

4 0x00007ffff75037d5 在来自 /usr/local/lib/libwebsockets.so.5.0.0 的 lws_client_socket_service ()

5 0x00007ffff74fe606 in libwebsocket_service_fd () from /usr/local/lib/libwebsockets.so.5.0.0

6 0x00007ffff7505980 在来自 /usr/local/lib/libwebsockets.so.5.0.0 的 lws_plat_service ()

还有更多,但相关信息在上面......

如上所示,segfault 发生在 SSL_ctrl() 函数中。

如果有人从 libwebsockets SSL_ctrl() 函数中得到了段错误并解决了它,请告诉我。

如果有人能告诉我如何使用调试标志构建 libwebsockets(使用 make、cmake 或其他方式)和/或使其详细地写入某些日志文件和/或使其能够使用 gdb 进入函数,我将不胜感激!

0 投票
1 回答
2033 浏览

mqtt - HiveMQ 2.1.0 + Eclipse Paho javascript mqttws31.js 的 Websocket 连接错误

在 Google Chrome 上将 mqttws31.js 作为 HTML 文件的一部分执行时,我遇到了以下错误。

HiveMQ 用作 MQTT 代理,日志如下

当 HTML 文件包含 MQTT 客户端时,遇到以下错误。

解决此问题的任何帮助表示赞赏。

0 投票
0 回答
485 浏览

ios - ios模拟器中的Websockets SSL_library_init方法崩溃

当我将 CMake 包含在我的 iOS 应用程序中时,我使用 CMake 交叉编译支持 ssl 的 libwebsockets。它崩溃了。

这是崩溃错误消息:

如果我删除 libwebcoskets 的 ssl 支持,一切都很好。

我的操作系统是 Yosemite 10.10,iOS SDK 是 8.1,xcode 版本是 6.1,libwebsockets 版本是 1.3

0 投票
1 回答
1446 浏览

c - C websocket 库,libwebsockets

我正在查看 C websocket 库 libwebsockets 客户端示例。

但我不明白示例目的是什么。

是示例,此示例有两个连接(在代码中wsi_dumbwsi_mirror,我认为它们是相同的,但我不知道第二个连接的目的是什么。

使用第一个连接(在代码中wsi_dumb),它似乎等待来自服务器的请求libwebsocket_service(),然后......第二个连接(在代码中 wsi_mirror)呢?

下面是我说的代码的一部分。

0 投票
1 回答
1742 浏览

c - libwebsockets libwebsocket_client_connect 函数参数

这是 的签名libwebsocket_client_connect()

在这些参数中,我对什么hostorigin是什么感到困惑。

在参数的描述中,它说

似乎是服务器和客户端的域名或IP地址。

并且只有当我放置 127.0.0.1 或 localhost 时,它才能正常工作(因为我在 localhost 中测试了 websocket 服务器和客户端)

但如果是这样,我认为该函数已经有服务器 IP 或域名的地址字段,为什么它可能有重复的字段?

0 投票
2 回答
4412 浏览

c - C 的 libwebsockets,我可以将 websocket 文件描述符与 select() 一起使用吗?

我正在libwebsockets为客户端编码,它是 C 的 websocket 库。

我想使用 websocket 文件描述符,select()这样我就可以在处理其他事件的同时处理 websocket。

然后只有当 websocket 收到事件时,我才能调用libwebsocket_service();来处理 websocket 事件。

所以我尝试了以下步骤。

  1. 通过连接 websocketstruct libwebsocket *wsi = libwebsocket_client_connect(..) 我还检查了返回值是否为 NULL 或不是错误。

  2. 通过int获取文件描述符fd = libwebsocket_get_socket_fd(wsi);

  3. FD_SET(fd, &readFd);select(maxFd + 1, &readFd, NULL, NULL, NULL);

但它一直被阻止,虽然我认为它必须被唤醒,因为连接完成后服务器发送消息。

- -编辑 - -

经过更多的测试。

似乎是因为在连接完成之前调用了 select() 。这意味着在处理 LWS_CALLBACK_CLIENT_ESTABLISHED 之前。

我在andlibwebsocket_service()之间多放了一个,这样它就可以在调用之前处理。libwebsocket_client_connect()select()LWS_CALLBACK_CLIENT_ESTABLISHEDselect()

然后它在从服务器接收到一些消息时与 select() 一起工作。

这意味着处理后套接字是常开的LWS_CALLBACK_CLIENT_ESTABLISHED

0 投票
4 回答
3193 浏览

c - Using libwebsockets + ssl in asterisk getting error creating ssl context 140A90A1:lib(20):func(169):reason(161)

We are using libwebsockets 1.3 in our ssl enabled web socket client program written in c, we are compiling on Centos 6.5 with openssl 1.0.1 installed, making a .so library which is later used in asterisk. The compilation goes fine but I'm getting this runtime error:

Going through libwebsockets code I spotted the part that is generating the error message (lib/ssl.c line 90):

Which according to examples I've seen on the web looks absolutely fine, I've been scratching my head, searching and trying everything for the past couple of days including reinstalling different versions of openssl, changing the code above, replacing SSLv23_server_method with other methods, etc... but can't get it to work, does anybody know where the problem might be?


Additional informaiton: Using ERR_print_errors_fp() I get:

part of our code that calls libwebsocket_create_context looks like this:

The program is compiled into an .so library and the library is used in our modified version of asterisk (which itself uses openssl as far as I know).

0 投票
1 回答
959 浏览

c - Libwebsockets 发送数据

当我尝试将数据从客户端发送到服务器时,它显示“lwsts [9972]:从 skt 读取时出错”.. 我已经通过互联网搜索并且没有明确的表达。我正在像 LibWebSockets 包中的 test_server.c 示例一样发送数据。哪个错误可能导致这个问题?我正在使用 Ubuntu。

0 投票
1 回答
1174 浏览

java - 从 TooTallNate/Java-Websockets 调用 libwebsockets 服务器失败

我已经使用 libwebsockets 在 C++ 中实现了一个 websockets 服务器。当我从任何使用或不使用 TLS 的网络浏览器拨打电话时,它都有效。当我使用 TooTallNate/Java-Websockets 库从 android 应用程序调用它时,如果服务器不使用数字证书,它可以工作,但如果它使用(如果我想使用 TLS 则需要)服务器被阻止(并且确实不响应新消息)并且应用程序在 onClose(int 代码,字符串原因,布尔远程)上收到 1006 错误。无论我是否在客户端上使用 SSL,它都会发生。问题出在 libwebsockets.c 的第 2040 行:

它在服务器上阻塞,直到我杀死 android 应用程序。

这是App上的相关代码:

这是服务器上的相关代码:

我想知道我这边是否有任何错误,或者是否是 libwebsockets、openssl 或 java websockets 客户端库的错误。如果我调用此服务器,客户端可以工作:ws://echo.websocket.org 使用或不使用 TLS。即使java客户端存在错误,我也想知道即使客户端已经检测到问题并返回错误,ssl_read 也不会返回并被阻止是否是正确的行为。(openssl 代码上的 ssl_read 有点混淆,我无法理解)

问候, 胡安乔

更新: libwebsockets.c 代码在这里:https://github.com/davidgaleano/libwebsockets/blob/master/lib/libwebsockets.c似乎我有一个以前的版本。现在这条线是 2037。鉴于没有任何版本,而且它似乎是原始 warmcat/libwebsockets 的旧版本的一个分支,我想主要问题出在那个库中。

0 投票
2 回答
1633 浏览

c - 无法将数据发送到 libwebsocket 服务器

我正在尝试为X-Plane编写一个小插件,以使用libwebsocket创建一个简单的 websocket 服务器。我可以从 Google Chrome 连接到 websocket,但是,当我向服务器发送数据时,X-Plane 立即崩溃。

我很确定以下代码会导致问题:

我根本不是 C 程序员/专家,但以上似乎有问题吗?

我已经在 Gist 上发布了完整的源代码:https ://gist.github.com/josefvanniekerk/868432986f2f963a5583