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

ssl - 如何使用 websockets 在 Mosquitto 中应用 TLS?

我正在尝试测试 mosquitto+websocket 代理。

我的网站包含 mqtt-javacript 使用 https,所以我必须使用 wss:// 协议所以首先我申请代理 TLS 选项(cafile、certfile、key),它运行良好。(不是 websockets)

但是当我在配置文件中添加 websockets 选项时,它只适用于 ws:// 协议而不是 wss://。

我不知道为什么没有应用 TLS ......知道这个问题的人请帮助我......

我按照步骤在http://mosquitto.org/man/mosquitto-tls-7.html制作 CA 和证书文件

0 投票
0 回答
513 浏览

c - 如何将全局用户定义的结构传递给每个回调 libwebsockets C

我不确定这是否与 lws 有关,但我只是找不到传递全局结构的方法,该结构在回调之间保存其值。简单的故事是我在 C 中有简单的哈希表 https://github.com/cgjones/android-system-core/blob/master/libcutils/hashmap.c

我试着在例子中解释:我有主要的:

这是callback_wsapi C文件,我删除了一些代码只是为了显示重要的东西

所以我只能在第一个请求中获取哈希图:LWS_CALLBACK_RECEIVE
然后它只是失去范围。

问题:
1. 我怎样才能使这个 hashmap 对回调是全局的?它应该容纳服务器总用户数。

0 投票
2 回答
1590 浏览

libwebsockets - libwebsocket:如果一段时间没有服务器响应(超时),如何断开客户端?

我有一个客户端使用 libwebsocket 建立与服务器的连接。每当客户端发送请求时,服务器都会发送响应,并在收到响应后关闭连接。工作正常。

但是当服务器不响应请求时,我遇到了客户端一直等待响应的问题。当什么都没有发生时,永远不会调用回调,并且不可能通过从回调函数返回 -1 来关闭连接。

有什么方法可以使连接关闭超时?还是有可能从回调函数外部关闭连接?

到目前为止,这是我的代码:

0 投票
0 回答
153 浏览

javascript - 使用 websocket 包装器时,数据是如何“装帧”的?

我一直在测试Caddy ServerWeb Socket Daemon,看看从服务器环境支持 WebSocket 是多么容易。这两种解决方案都是使用您选择的命令行程序(以您选择的任何语言编写)的标准输入/输出的抽象。

但是,这两个程序都是基于行的。也就是说,如果您的命令行程序将单个“消息”写入包含换行符的标准输出,您的 JavaScript websocket 代码将看到两条不同的消息。

有没有办法避免这个问题?

编辑:作为非官方答案,您可以执行多种编码以避免换行问题。例如,如果您的命令行程序使用 JSON 编码的数据进行响应,您可以简单地对数据进行 base64 编码,然后再将其写入标准输出。然后,JavaScript 会atob()在对其进行 JSON 解码之前调用此数据。使用多种编码会增加一点点大小开销,但它确实避免了换行符的问题(以及其他非打印和控制字符的任何其他问题)。

0 投票
1 回答
185 浏览

linux - 如何在 libwebsocket 编码中包含 libmysql?

我正在尝试使用 libwebsocket 来构建我的 WebSocket 服务器,我需要在我的代码中使用 libmysql。我已经安装了 libmysql 并且能够使用它,但我不知道如何在 CMakeList.txt 中使用 cmake 将它包含在内

我已将其包含在我的 test-server.h 中

在我的 CMakeList.txt 中,我添加了这个

当我使用“make”来制作文件时,我收到了错误消息

这是 CMakeList.txt 的原始代码 https://github.com/warmcat/libwebsockets/blob/master/CMakeLists.txt

CMakeList.txt 由 libwebsocket 提供,我尝试使用以下代码对其进行编辑:

为什么我不能链接图书馆?为了在我的 libwebsocket 服务器代码中使用 libmysql,我应该怎么做?我正在使用 ubuntu 14.04 作为操作系统。

0 投票
1 回答
368 浏览

nginx - NGINX - Websocket 客户端支持

一个快速的问题,Nginx 是否支持 websocket 客户端。

我有一个使用 NGINX 的网络服务器,并且我使用 NGINX 充当代理的 websocket 服务器。在同一个端口,我可以使用 websocket 客户端来启动与外部 websocket 服务器的连接吗?

0 投票
1 回答
1873 浏览

c - libwebsockets 客户端无法连接

我正在使用 libwebsockets 2.0,但在尝试使用它作为客户端连接到服务器时遇到了一些问题。

根据 libwebsockets 日志,当我相当简单的客户端尝试连接到时会发生这种情况echo.websocket.org

根据此日志,似乎说getaddrinfo失败了,但它上面的行(应该输出 libwebsockets 连接的地址)正在返回一个空字符串。

更奇怪的是,当我通过 Valgrind 运行测试代码时,一切似乎都运行良好:

所有包含的示例/测试都可以正常工作,所以我真的不确定我的问题出在哪里。

错误代码在这里- 我不确定问题是在我的代码中还是库问题。

0 投票
2 回答
3657 浏览

openssl - CMake 错误:找不到 OpenSSL

我的目标:

我正在尝试将 Mosquitto 代理配置为使用 websockets。

警告和错误:

https://docs.google.com/document/d/1HJ75NO1wBsnNfFFszeXP4p8re7m4gTE_CMbFoSswJJs/edit?usp=sharing

软件:

  • 视窗 10 x64
  • libwebsockets-master
  • Cmake 3.6.2 win32
  • OpenSSL 1.1.0a
  • Visual Studio 14 2015(带有 C++ 编译器)

我试过的:

我正在使用 CMake gui,因为我不太熟悉这些命令。我配置源和目标并将以下变量分别设置为路径和文件路径:

  • OPENSSL_ROOT_DIR = OpenSSL-Win32
  • OPENSSL_LIBRARIES = OpenSSL-Win32/libOpenSSL-Win32/lib/openssl.lib
  • OPENSSL_CONF = bin\openssl.cfg
  • OPENSSL_INCLUDE_DIR = OpenSSL-Win32/include/openssl

我也尝试在 libwesocket 的 CMkakeLists.txt 文件中设置 OPENSSL_LIBRARIES。我使用了多个不同版本的 CMake 和 OpenSSL。我尝试使用 VS 命令行(以管理员身份)打开 CMake。

我以前使用过时的 OpenSSL构建了一个.sln文件,因此编译器没有问题。

我已经查看了这里这里这里这里的问题。如果归结为使用命令行专门设置​​ OPENSSL_ROOT_DIR,有人可以对此有所了解吗?

0 投票
1 回答
961 浏览

c++ - 从 C# UI 应用程序关闭阻止 webscokettpp 客户端的客户端连接

我正在使用 webscokettpp c++​​ 客户端来读取从网络服务器发布的数据。我有一个带有测试按钮的 ac# UI 应用程序,它调用 c++ 客户端 dll 来获取和显示在套接字上发布的数据。单击测试按钮时,数据第二次在 UI 上正确发布我想关闭现有连接,打开新连接以再次获得结果。但是在第一次运行之后程序永远不会从 c.run(); 返回 在下面的代码中。我正在使用来自https://github.com/zaphoyd/websocketpp/blob/master/examples/echo_client/echo_client.cpp的示例

当条件 if(pt.get("test") = "close") 发生时,我试图找出一种从 c.run() 出来的主要方法的方法。

0 投票
1 回答
155 浏览

libwebsockets - Libwebsockets 为 css 和 js 文件返回 406 错误

我正在尝试添加css文件/usr/local/share/libwebsockets-test-server/

但由于某种原因,我遇到了406 Not Acceptable错误。

我已经检查了权限,test.html并且目录中的 css 文件css都有644权限并且都属于root.

FWIW,CDN forjquery似乎工作正常。

提前谢谢了。