将 JavaScript 通过 websockets 发送的最后一个字符剥离到 Python

Posted

技术标签:

【中文标题】将 JavaScript 通过 websockets 发送的最后一个字符剥离到 Python【英文标题】:Strip the last character sent by JavaScript through websockets to Python 【发布时间】:2010-07-25 22:08:29 【问题描述】:

我目前正在尝试 websockets,用 javascript 创建一个客户端,用 Python 创建一个服务器。

不过,我遇到了一个简单的问题:当我从客户端向服务器发送内容时,它总是包含一个特殊的结束字符,但我不知道如何删除它。

我试过 data[:-1] 认为可以摆脱它,但它没有。

使用该字符,我的 JSON 代码将无法验证。

这是我通过 JavaScript 发送的:

 ws.send('"test":"test"');

这是我在 python 中得到的:

"test":"test"�

我以为结尾字符是\xff

【问题讨论】:

我们能看到一些代码 sn-ps 吗? 通过 AJAX 发布时我们可以看到您的标题吗? WebSocket 规范仍在不断变化中。您的实现可能使用的是旧版本的规范,它与新版本不是 100% 向前兼容。检查以确保如果您使用的是库,则使用的是最新版本。 【参考方案1】:

表达式“data[:-1]”是一个生成缺少最后一个字符的数据副本的表达式。它不会修改“数据”变量。为此,您必须分配回“数据”,如下所示:

data = data[:-1]

我怀疑“特殊结尾字符”是一个错误,在某个地方,无论是在您的代码中还是在您使用 API 的方式中。网络代码一般不会将随机字符引入数据流。祝你好运!

【讨论】:

以上是关于将 JavaScript 通过 websockets 发送的最后一个字符剥离到 Python的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 或 JavaScript 获取到 WhatsApp 的 websocket 连接?

通过 Websocket 用 Python 控制 Javascript/CSS 元素?

我将如何在 Javascript 中通过 WebSocket 发送和接收数据包

使用 JavaScript 将 Websocket 连接到 Qt Fortune Server

通过 websocket 接收文件并启动下载对话框

C# Websockets 将序列化列表发送到 javascript