首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点对点重置TCPSocket连接

点对点重置TCPSocket连接
EN

Stack Overflow用户
提问于 2018-11-15 08:39:26
回答 1查看 909关注 0票数 0
代码语言:javascript
复制
require 'socket'
socket = TCPSocket.open('stream-api.betfair.com', '443') 
while line = socket.gets
  puts line.chop
end
socket.close

我应该收到,有点像{"op":"connection","connectionId":"002-230915140112-174"}

但我收到了Connection reset by peer

这意味着远程端将发送一个重置数据包(RST),以在没有有序关闭(关闭)的情况下关闭连接。在这种情况下,您知道是对等方(客户端)。

贝费尔包括nodejs示例csharp/java示例

任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 09:43:03

首先,应该将字符串'443‘替换为整数:

代码语言:javascript
复制
TCPSocket.open('stream-api.betfair.com', 443)

无论如何,它似乎与SSL嵌套有关:下面的Stackoverflow文章给出了一个关于什么能起作用的快速想法:如何在Ruby中建立SSL支持的TCP/IP连接。使用这种方法,我可以工作。

代码语言:javascript
复制
require 'socket'
require 'openssl'

host = 'stream-api.betfair.com'
port = 443

socket = TCPSocket.open(host,port)
ssl_context = OpenSSL::SSL::SSLContext.new()
ssl_context.ssl_version = :SSLv23
ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ssl_context)
ssl_socket.sync_close = true
ssl_socket.connect
while line = ssl_socket.gets
  p line
end
ssl_socket.close

结果:

代码语言:javascript
复制
"{\"op\":\"connection\",\"connectionId\":\"001-151118094105-259478\"}\r\n"

使用Ruby处理SSL/TLS受保护的连接有时非常冗长。在您给出的示例中,在NodeJS中,提示是第一行:

代码语言:javascript
复制
var tls = require('tls');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53315331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档