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

c++ - 从 void* 转换为字符串 libwebsocket

我有一个用 libwebsockets 构建的小型 websocket 服务器,我需要接收一个 string ,问题是接收到的数据是一个 *void,但是我很难将它转换为 string 。

在这种LWS CALLBACK RECEIVE情况下,数据是*in,我将其转换为 static_cast<std::string*>(in);,存储在 webcmd 字符串中。

问题是结果是一个字符指针,而不是我需要一个真正的字符,因为接下来我需要拆分字符串。

你怎么看待这件事?

编辑:解决了这个问题。

在下面case LWS_CALLBACK_RECEIVE:

webcmd 是 char 数组, tmpcmd 是 char 指针

谢谢大家:D

0 投票
1 回答
127 浏览

c - 在 c 中集成 3pp lib 时函数名称重叠

我试图将第三方库(libwebsockets)集成到应用程序中。

现在事实证明 libwebsockets 具有以下功能:

该应用程序具有类似的功能

不幸的是,libwebsockts 在执行期间使用了应用程序中的函数而不是它自己的函数。

  1. 现在检测这种情况的规范方法是什么,以便更容易集成 3pp-lib(在逐步调试大量代码行后发现这种冲突)?(如果那里有可用的技巧,我正在使用 Visual Studio)

  2. 允许这种情况发生的应用程序(和/或)库中的设计是否糟糕?

0 投票
2 回答
284 浏览

c - libwebsockets:取消引用指向不完整类型错误的指针

我正在使用libwebsockets,无法编译自己实现的演示代码。

我创建了context

当我尝试访问libwebsocket_context在 private-libwebsockets.h 中定义的 struct 的成员时:

例如,

编译器返回,

谢谢!

0 投票
0 回答
3125 浏览

javascript - Google Chrome WebSocket 扩展“x-webkit-deflate-frame”中的错误消息已弃用

我正在使用 JavaScript 连接到 websocket。

我在 google Chrome 33.0.1750.117 的 JavaScript 控制台中看到一条错误消息。

错误发生在以下 JavaScript 行:

这是显示的错误:

服务器端使用带有 C 编程语言的 libwebsockets。

- - - 更新 - - -

我一直在环顾四周,找到了一种在谷歌 Chrome中查看 WebSocket 框架的方法。如果您转到 chrome://net-internals/,然后单击 Sockets,然后单击链接以查看实时套接字。您将看到所有当前连接的 websocket 连接。

是什么导致 Google Chrome 中出现此错误?

如何摆脱错误消息并使用未弃用的 WebSocket 扩展?

0 投票
0 回答
707 浏览

https - 从服务器返回图片时,带有openssl的libwebsockets似乎很慢

我正在使用 libwebsockets 开发一个小型服务,用于连接浏览器和我的服务。当它在 http 中工作时,一切正常。但是当我使用 openssl 切换到 https 时,它的效果很差。例如,当我在浏览器中单击超链接时,我的服务应该返回一张图片。但它的工作非常缓慢。执行此操作时,我的 cpu 运行大约 50%。我只是很困惑,需要你的帮助。非常感谢~主要代码如下:

0 投票
1 回答
9454 浏览

google-chrome - WebSockets 在桌面浏览器中工作,但在 Chrome for Android 中失败

我有一个通过 WebSockets 连接到服务的网络应用程序。此应用程序在桌面版 Chrome/Firefox 中运行良好,但移动版 Chrome 出现错误:

WebSocket 连接到“ws://192.168.0.11:8080/”失败:一个或多个保留位打开:reserved1 = 0,reserved2 = 1,reserved3 = 0

服务器使用最新版本的libwebsockets

此错误发生在初始连接期间,随后通过多个 2048 字节帧向客户端发送了大量的 JSON 数据。

服务器公开了几个不同的 WebSocket。其中一些也以其他方式失败:

无法将文本帧解码为 UTF-8。

...和...

无法识别的帧操作码:6

预测哪个应该失败,哪个应该成功的模式还没有显现出来。

我怀疑这里存在某种框架问题。我已经查看了 WireShark 中的消息,它们对我来说是正确的。标题似乎是正确的。

为什么这可以在桌面 Chrome/Firefox 中工作,但在 Android 版 Chrome 中失败?

0 投票
1 回答
1001 浏览

c++ - libwebsockets 是否提供发布/订阅?

我想创建一个 Web 应用程序,只要 C++ 后端有新内容,一组用户就可以异步接收一些数据。因此,理想情况下,当一个新用户到来时,他将被添加到订阅者列表中,并且只要 C++ 后端有该组的新数据,它就会将其发布给每个人。

libwebsockets似乎是一个与 C++ 一起使用的好库。唯一的问题是它似乎主要是在回调系统上设计的,因此,显然数据仅在客户端请求时才发送。

我发现这篇文章有类似的问题,但我不知道这是否是最好的方法:如何通过 libwebsocket 发送异步数据?

任何帮助将不胜感激。谢谢你。

0 投票
2 回答
2852 浏览

libwebsockets - libwebsockets 在接收后写入所有活动连接

我正在玩弄一个 libwebsockets 教程,试图使它在通过给定协议从连接接收到消息后,向所有实现该协议的活动连接发送响应。我已经使用了该功能libwebsocket_callback_all_protocol,但它并没有按照我认为它的名称应该做的事情(我不太确定它从文档中做了什么)。

目标是打开两个网页,当从一个网页发送信息时,结果将转发给两个网页。下面是我的代码 - 你会看到它libwebsocket_callback_all_protocol在 main 中被调用(我认为它目前什么都不做……):

0 投票
1 回答
8517 浏览

javascript - 从 libwebsockets 接收时,Chrome 显示“无法将文本帧解码为 UTF-8”

我正在使用libwebsockets C 库。我正在尝试做一个简单的回声服务器,作为测试。我正在 linux 下使用 Firefox 和 Chrome 进行测试。

代码很简单:

Javascript

C

我确实从浏览器收到了“这是一个问候”,但是当我发送答案时,它确实写了“写了 534 个字节”,但在 Javascript 端,Web 套接字连接已关闭,Chrome 说:“无法解码一个文本框架为 UTF-8"。

我很困惑,在字符串“Answer”中,只有 < 128 个字符,所以它们应该是 UTF-8,对吧?

0 投票
1 回答
571 浏览

jquery - Websockets 和安全性

我希望托管一些基于 websocket 的应用程序,这些应用程序只能通过 https 页面访问。因此,服务器生成带有随机密钥的 https 页面。我想使用此密钥来防止外部人员间接访问 websocket。

我可以让每个 web socket 客户端将密钥发送到 websocket 服务器,如果密钥不匹配,则关闭连接。但是,我希望自己更新 websocket 以传递密钥,如果密钥不匹配,则自动拒绝连接。(这样,如果引入了新的应用程序,就不会忘记实施检查)。

我环顾四周,并没有找到关于 websockets 如何工作的深入文档。

wss 连接的初始握手是否以明文形式发送(如果我将密钥附加到这些数据包,中间人可以拦截它们吗?)。如果没有,是否有一种标准方法可以在连接上发送此类元数据,还是我应该破解 websocket 源文件?

我在服务器端使用 libwebsockets,在客户端使用 jquery.websockets。