小编Ouu*_*iii的帖子

如果从未进行关闭握手,WebSockets将不会在IE上关闭

我一直在用JavaScript实现WebSocket,但我遇到了一个问题:
我的Web应用程序所连接的端点在发送一个封闭的控制框架时没有将其发送回去。

这还不错,因为浏览器会在一段时间后关闭WebSocket连接。

但是需要注意的几件事是:

  • 浏览器只允许同时连接一定数量的WebSocket。

  • 刷新Web应用程序时,将创建一个新的WebSocket。

这会导致IE上的问题:
刷新Web应用程序超过6次时,无法建立WebSocket连接。

如果尚未完全关闭WebSocket,似乎IE不会“删除” WebSocket。奇怪的是,Web套接字的数量似乎从未因刷新或等待而减少。

仅通过关闭浏览器窗口或选项卡将WebSockets的数量重置为0。


我做了一些研究,这是我发现的:


浏览器仅支持同时连接特定数量的WebSocket。

IE支持6个websocket进行连接[链接]

Chrome支持连接255个websocket [link]

并且socket.onclose()不会在您执行操作时触发socket.close(),而是在端点以关闭消息进行响应时调用。 [链接]

IE等待15秒,以便端点发送关闭消息[link]

Chrome等待60秒钟才能收到响应消息[很抱歉,对此没有链接,通过测试发现了此消息]。

如果未收到响应消息,则浏览器将关闭WebSocket连接,并应发生TimeoutError。

如果我错了请指正我:)


我尝试过使用unbeforeload与端点的断开连接,希望浏览器在一段时间后关闭连接,但是没有运气。[链接]
也可能是IE无法在[link]unbeforeload函数内执行请求的原因。

题:

  1. 是否可以通过JavaScript重置浏览器中连接到端点的WebSocket的数量?
  2. 有没有一种方法可以立即从端点断开WebSocket而不完全关闭连接?
  3. 是唯一可行的方法来通知托管其端点的主机进行一些更改,以便他们发送关闭帧吗?
  4. 有什么我误解的东西,或者我可以尝试使其工作吗?

如果有人想了解更多关于WebSocket协议的信息,这是(我认为)很好的文档[link1] [link2]

更新:

只有刷新IE上的Web应用程序,WebSocket才会被销毁
如果您在Web应用程序中的页面之间导航,则会创建一个新的WebSocket,但最后一个WebSocket将被破坏。

javascript internet-explorer network-protocols websocket handshake

24
推荐指数
1
解决办法
570
查看次数

TypeScript 通过对象循环

我有一个非常简单的问题,我想循环遍历 TypeScript 中的对象。

const an_object = {
    one: 1,
    two: 2,
    three: 3
};

for (let key in an_object) {
    let value = an_object[key];
    // Do something with value
}
Run Code Online (Sandbox Code Playgroud)

此行let value = an_object[key];导致 TypeScript 错误:

[react-scripts] 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{ one: number;” 二:数量;三:数量;}'。

我是 TypeScript 新手,不太明白这个问题。

这在 JavaScript 上工作得很好,但在 TypeScript 上却不行。

关于如何正确循环 TypeScript 中的对象而不出现错误,有什么建议吗?

typescript

7
推荐指数
1
解决办法
6294
查看次数

从非子文件夹的另一个文件夹导入 python 文件

我想要的是

\n

我正在使用 Visual Studio Code 和 Python 3.7.0,我只是尝试将另一个 Python 文件从另一个文件夹导入到我的 python 文件中

\n
\n

细节

\n

这是我的文件夹结构

\n
root/\n    dir1/\n        data.txt\n        task11.py\n        task12.py\n    dir2/\n        data.txt\n        task21.py\n        task22.py\n    Helpers/\n        FileHelper/\n            ReadHelper.py\n
Run Code Online (Sandbox Code Playgroud)\n

所以一个简短的解释:

\n
    \n
  • 我在每个“任务”文件中使用相同的函数
  • \n
  • 我没有将函数放入每个“任务”文件中,而是创建了函数存在的帮助程序文件
  • \n
  • 我想将帮助程序文件“ReadHelper.py”导入到我的任务文件中
  • \n
\n
\n

我尝试过的

\n

例如在文件task11.py中:

\n

python python-import python-3.x

6
推荐指数
1
解决办法
1万
查看次数

归一化VS. numpy方式规范化?

我应该规范化一个数组.我读过有关规范化的内容并遇到一个公式:

在此输入图像描述

我为它写了以下函数:

def normalize_list(list):
    max_value = max(list)
    min_value = min(list)
    for i in range(0, len(list)):
        list[i] = (list[i] - min_value) / (max_value - min_value)
Run Code Online (Sandbox Code Playgroud)

这应该规范化元素数组.

然后我遇到了这个:https://stackoverflow.com/a/21031303/6209399 这说你可以通过简单地执行以下操作来规范化数组:

def normalize_list_numpy(list):
    normalized_list = list / np.linalg.norm(list)
    return normalized_list
Run Code Online (Sandbox Code Playgroud)

如果我test_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]用我自己的函数和numpy方法规范化这个测试数组,我得到这些答案:

My own function: [0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0]
The numpy way: [0.059234887775909233, 0.11846977555181847, 0.17770466332772769, 0.23693955110363693, 0.29617443887954614, 0.35540932665545538, 0.41464421443136462, 0.47387910220727386, 0.5331139899831830
Run Code Online (Sandbox Code Playgroud)

为什么函数给出不同的答案?还有其他方法来规范化数据数组吗?怎么numpy.linalg.norm(list)办?我有什么问题?

python numpy normalization

5
推荐指数
2
解决办法
1万
查看次数

CSS中的"伪"是什么意思?

当我读到CSS和HTML时,我会跨越伪元素这个词.

对于伪意味着什么,我没有找到一个很好的简短解释.有人可以向我解释一下吗?

html css pseudo-class pseudo-element

4
推荐指数
2
解决办法
471
查看次数

打开po文件时poEdit编码错误

我在工作中使用poEdit,但在po文件中编码时遇到了麻烦。

我有poEdit(版本1.8.8)和MacBook Pro(版本10.11.4)。我正在尝试将英语翻译成瑞典语,并且那里有旧翻译。但是编码是错误的,所以我看不到'ä','å'和'ö'字符。

更新后的版本:

我使用github桌面,当我同步它们的文件时,github桌面喜欢在我的文件中编写一些代码。而且我100%确信github桌面可以做到这一点,因为.po文件在同步之前可以正常工作,而且我从其他任何地方都无法获得此代码。

这是github桌面在我的文件中写的内容:

blabla

<<<<<<< HEAD 

"POT-Creation-Date: 2016-07-23 00:13+0000\n"
"PO-Revision-Date: 2016-08-03 17:23+0300\n"

=======

"POT-Creation-Date: 2016-08-11 18:37+0000\n"
"PO-Revision-Date: 2016-08-11 18:37+0000\n"

>>>>>>> origin/master

blabla
Run Code Online (Sandbox Code Playgroud)

oo,<<<<<<< HEAD,=======和>>>>>>>原始/主文件?!?!!?!?!?!?!为什么是github桌面?为什么不使用poEdit呢?

我删除了它,一切正常。

旧版:

当我使用'Sublime text 3'或'textEditor'等其他应用程序打开.po文件时,编码正确(即UTF-8)和'ä','å'和'ö'可见。但是,如果我使用poEdit打开相同的文件,则编码将为ISO-8859-1,这是“ä”,“å”,“ö”的输出:

'ä'=>'ä',

'å'=>'Ã¥',

'ö'=>'ö'。

我尝试更改“目录->属性->字符集”中的编码,但它没有任何改变。

我的问题是:如何使用poEdit打开.po文件,以便编码为UTF-8。

encoding special-characters poedit github-desktop

3
推荐指数
1
解决办法
2339
查看次数