Foxtable(狐表)用户栏目专家坐堂 → [求助]OpenQQ心跳超时


  共有2166人关注过本帖树形打印复制链接

主题:[求助]OpenQQ心跳超时

帅哥哟,离线,有人找我吗?
windmouse
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
[求助]OpenQQ心跳超时  发帖心情 Post By:2017/7/17 21:11:00 [显示全部帖子]

依据帮助中   《关于IP、端口和防火墙》章节的说明,

在本机上尝试OpenQQ的服务端和客户端

QQServer的IP地址设置为“127.0.0.1”,客户端通过"127.0.0.1"即可访问本机的QQServer。
端口设置也和帮助一致,

服务端开启后,客户端也正常登陆了——有弹窗提示

 

为何过了一会就弹窗提示“心跳超时,OpenQQ失去连接,正在连接服务器。。。”

 

重新设置了心跳间隔为50  心跳超时未150也还是一样。


 回到顶部
帅哥哟,离线,有人找我吗?
windmouse
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
  发帖心情 Post By:2017/7/17 22:31:00 [显示全部帖子]

1、用帮助的实例测试可以正常。

2、我自己的程序防火墙关闭了,测试也是一样。

 

是否是我的用户表是引用外部数据源引起的呢?

 

 

我根据帮助的《在菜单提示新消息》进行设置后,可以看到显示登录的图标在提示“心跳超时,OpenQQ失去连接,正在连接服务器。。。”时变灰色的,显示重连的弹窗消失后又变彩色的。

 

这是否说明是会间歇性断线,这是正常的吗?


 回到顶部
帅哥哟,离线,有人找我吗?
windmouse
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
  发帖心情 Post By:2017/7/17 22:56:00 [显示全部帖子]

UserLogging:

Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("Users").Find("上级 = '" & pts(0) & "' And Name = '" & pts(1) & "'")
If dr1 Is Nothing  Then '判断此用户不存在
    e.Message  = "用户名错误!" '返回给登录者的提示信息
    Return
End If
If dr1("Password") <> e.Password Then '如果密码错误
    e.Message  = "登录密码错误!" '返回给登录者的提示信息
    Return
End If
e.Success = True '允许用户登录

'最后添加相同部门的同事为好友
For Each dr2 As DataRow In DataTables("Users").DataRows
    Dim nm As String =  dr2("上级") & "." & dr2("Name")
    If nm <> e.UserName Then '如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

 

ReceivedMessage:

If e.Message = "GetDate" Then
    e.ReturnValue = Date.Now
End If

 

UserChangePassword

Dim pts() As String = e.UserName.Split(".")
Dim dr As DataRow = DataTables("Users").Find("上级 = '" & pts(0) & "' And Name = '" & pts(1) & "'")
If dr Is Nothing  OrElse dr("Password") <> e.OldPassword  Then
   e.ReturnMessage = "原密码不符!"
Else
    dr("Password") = e.NewPassword
    dr.Save()
   e.ReturnMessage = "OK" '返回约定的字符,通知客户端,密码修改成功
End If

 

启动

Click

QQServer.ServerIp = e.Form.Controls("IP").value               '指定IP地址
QQServer.ServerPort = e.Form.Controls("端口").value              '指定端口
QQServer.HeartbeatInterval = e.Form.Controls("心跳超时").value                     '指定心跳时间
QQServer.HeartbeatTimeout =  e.Form.Controls("心跳间隔").value                         '指定心跳超时时间
QQServer.Start()

 

其实跟帮助的代码是一致的

 

客户端我是测试的时候发现会资源间歇性断线——因为打开的内置聊天窗口会关闭,然后又可以重新打开。

我才导入在菜单提示新消息》的相关代码 以便比较直观的观察。


 回到顶部
帅哥哟,离线,有人找我吗?
windmouse
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
  发帖心情 Post By:2017/7/17 23:02:00 [显示全部帖子]

电脑系统也无问题,

因为我测试的帮助示例,是不会出现这样的情况的。

 

现在唯一的区别可能是帮助示例  OpenQQ的用户表是在服务端

 

而我这边的 OpenQQ的用户表也是在服务端,只不过该用户表是本机SQL的外部数据表,该用户表同时也是与foxtable用户表。


 回到顶部
帅哥哟,离线,有人找我吗?
windmouse
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
  发帖心情 Post By:2017/7/17 23:09:00 [显示全部帖子]

间歇性断线, 断线的时间间隔约为7秒,在线的间隔约为50秒

 

  心跳间隔的设置为50   心跳超时设置为150   端口根据帮助设置为52177

 

 IP地址设置我本机的192.168.1.7     原来用127.0.0.1测试也是一样的


 回到顶部
帅哥哟,离线,有人找我吗?
windmouse
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:148 威望:0 精华:0 注册:2017/7/17 20:35:00
  发帖心情 Post By:2017/7/17 23:14:00 [显示全部帖子]

已将服务端和客户端打包于附件中,请帮忙看下问题在哪  不过因为引用的用户表在我这边本机的SQL中,你那边可能无法测试。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:openqq心跳超时.rar


 回到顶部