热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

接收服务器显示帧控制错误,Websocket连接关闭,出现错误“接收到意外的继续帧”...

我只是想用WebSockets。我用python编写服务器代码。服务器运行良好,但当尝试使用浏览器连接到套接字时,我得到了错误WebSocketcon

我只是想用WebSockets。我用python编写服务器代码。服务器运行良好,但当尝试使用浏览器连接到套接字时,我得到了错误"WebSocket connection to 'ws://localhost:9876/' failed: Received

unexpected continuation frame"

当我在互联网上提到时,我明白这是与从服务器发送的数据帧有关的事情。在发送数据时,我尝试遵循these(rfc6455)标准,即使我无法实现websocket连接。几乎类似的问题被问到here,但这是一个老帖子,也不清楚解决办法。在

我的服务器很简单。。在import socket

def handle(s):

print repr(s.recv(4096))

s = socket.socket()

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)

s.bind(('',9876))

s.listen(2)

handshakes='\

HTTP/1.1 101 Web Socket Protocol Handshake\r\n\

Upgrade: WebSocket\r\n\

Connection: Upgrade\r\n\

Sec-WebSocket-Origin: null\r\n\

Sec-WebSocket-Location: ws://localhost:9876/\r\n\

'

def handshake(hs):

hslist = hs.split('\r\n')

body = hs.split('\r\n\r\n')[1]

key = ''

cc = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'

for h in hslist:

if h.startswith('Sec-WebSocket-Key:'):

key = h[19:]

else:

continue

import hashlib

import base64

s = hashlib.sha1()

s.update(key+cc)()

h = s.digest()

return base64.b64encode(h)

def sender(data, conn):

first_byte = chr(0x00)

payload = data.encode('utf-8')

pl = first_byte + payload + chr(0xFF)

conn.send(pl)

while True:

c,a = s.accept()

msg = c.recv(4096)

if(msg):

print msg

print 'sending handshake ...'

handshakes += 'Sec-WebSocket-Accept: '+str(handshake(msg))+'\r\n\r\n'

print handshakes

c.send(handshakes)

sender("Hello", c)

break;

以及html,索引.html在

^{pr2}$

我是这样运行代码的。。在./server.py & python -m SimpleHTTPServer 8888

在运行服务器之后,当我点击localhost:8888使用浏览器,它会在控制台上警告“打开”(表示握手完成)的同时,警告“关闭”(连接关闭),并在控制台上显示上述错误。在

不太清楚如何调试这个问题。在

我使用浏览器Chrome(版本:41)、python2.7、websocket13。在



推荐阅读
  • 目录4.1.type数据类型检测 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 从C#Byte数组加载图像,并使用AngularJS将图像放在html标记中我正在使用ByteArrayforms的Image,因为我正在使用以下C#方法转换字节数组publicH ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式
    假设有Excel文件data.xlsx,其中内容为:     ID age height    sex weight张三  1  39    181 female     85李四  2  40    180   male     80王五  3  38    178 female     78赵六  4  59    1 ... [详细]
author-avatar
给糖就不骗你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有