WebSocket半开?

时间:2018-10-29 20:09:06

标签: websocket

我有一个关于WebSocket的简单问题。我知道WebSocket协议基于TCP。而且我知道TCP连接是半开放的。

这是否也意味着WebSocket连接也是半开放的?我试图在互联网上进行搜索,但找不到可靠的来源。

1 个答案:

答案 0 :(得分:1)

半开是指套接字连接不同步的状态。

例如,当移动设备移出接收区域并且仅一侧(即设备)尝试发送数据(并失败)时,可能会导致此错误。

在此示例中,移动设备将连接标记为已关闭,而服务器将在等待数据时,很高兴地没有意识到连接已中断。

您可以了解有关此here的更多信息。

除非发生错误,否则

TCP / IP连接将半打开。它们可以打开一半(依赖TCP / IP层的WebSocket连接也可以打开)。

要解决此问题,请使用定期的<Grid> <Label x:Name="label" Content="Events" HorizontalAlignment="Center" VerticalAlignment="Top"/> <ScrollViewer HorizontalAlignment="Left" Height="619" Margin="0,26,0,0" VerticalAlignment="Top" Width="450" VerticalScrollBarVisibility="Hidden"> <Grid x:Name="Schedule" HorizontalAlignment="Left" Height="Auto" VerticalAlignment="Top" Width="450" Margin="10,0,0,0"/> </ScrollViewer> <Grid x:Name="grdFilters" HorizontalAlignment="Left" Height="619" Margin="490,26,-176,0" VerticalAlignment="Top" Width="135" Background="{StaticResource TransparentBackground}" Panel.ZIndex="95"> <CheckBox x:Name="chckAll" Content="All" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Checked="chckAll_Checked" Unchecked="chckAll_Unchecked"/> <Grid x:Name="grdFilters" HorizontalAlignment="Left" Height="588" Margin="0,31,0,0" VerticalAlignment="Top" Width="136"/> </Grid> <Button x:Name="btnFilters" Content="" Margin="436,223,-18,0" VerticalAlignment="Top" Background="Cyan" Opacity="0.15" Style="{StaticResource MyTabStyle}" Height="80" Click="btnFilters_Click"/> </Grid> 。该ping最终将公开半开连接,因此可以检测到错误并可以关闭连接。