我正在使用C#编写的应用程序,通过IP连接到我们的几个设备。应用程序可以很好地连接到设备,我们可以发送配置它所需的命令。我遇到的问题是在大约40秒到一分钟后没有发送任何命令,连接断开。我想知道我可以做些什么来保持套接字至少存活几分钟。需要一些关于实现心跳的指导,任何帮助都是非常感谢的。
这是我们使用的代码。
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
using System.Globalization;
目前我使用的是node.js服务器,它具有TCP套接字连接(使用socket.io),使用它,我正在通过浏览器显示实时数据。
考虑一个场景,我已经登录到我的应用程序和所有的实时显示通过网页浏览器。现在,网络突然中断了。在此,当客户端套接字发出disconnect事件时,我想显示一条“过期”的消息。
socket.on('disconnect', function () {
console.log("Disconnected from the server");
alert("disconnect")
我使用Socket.IO (最新版本1.1.0)与安卓应用程序(客户端)交换消息。我想设置一个超时(例如5s)来检查我的客户端是否仍然连接(我想在Android应用崩溃时处理这个问题)。此外,当发生此超时时,我希望生成一个事件。我想做的事情看起来是这样的:
1/设置超时
var socket = require('socket.io')({
//options go here
'timeout': 5000 //set the timeout to 5s
});
2/处理超时事件:
socket.on('timeout', functi
我正在尝试创建一个用户对用户聊天应用程序-没有群聊或任何东西。我在后端使用NodeJS和Socket.io,在前端使用React Native。
我最终有了一个存储user id和相应socket id的Map,我的问题是,只有当用户连接到服务器时,他才会获得套接字id。但是,如果用户A正在连接并试图向用户B发送一条消息,而用户B没有连接,因此它没有套接字id,我真的不知道该怎么办。
这就是我到目前为止得到的:
io.on("connection", (socket: Socket) => {
//Whenever a user will connect, the u
是否有理由让插座在2h后自行关闭?我每秒钟都会从这个套接字上接收数据,每隔30分钟写一次微小的“保持生命”数据。
在发送之前,我检查套接字是否仍然使用以下方法连接:
public bool IsSocketReadyForWriting(Socket s)
{
try
{
if (!s.Connected)
{
Log.Info("Socket.Connected was false");
return false;
}
// following line will throw