PowerTalkBox和飞信结合搞定在线客户端(.net)
2010年11月20日
一个礼拜了,都在搞这个在线客户端,差点没崩溃,最终还是搞定了,嘿嘿,在此感谢一下那些帮助我的同学、朋友、老师、网友,嘿嘿,要不还不知道啥时候才能搞定呢.......
这玩意其实说通了也就两个飞信号在那对发信息,即Web(用PowerTalkBox)--服务端(使用飞信的sdk,这里用一个飞信号)--飞信客户端(这是我们的客服号),基本思路是:用户在Web端发送一条消息,通过socket发送给服务端,服务端接收完成到信息后,将该信息通过飞信的sdk转发给客服,客服回复信息,发送到服务端,服务端利用飞信sdk收到消息,调用一个根据PowerTalkBox写的服务,将消息加入到PowerTalkBox的对话列表中,这样web端就直接将这条消息调出来,客户就可以看到了,哈
客户端那边是用web实现的,以前有看过那个PowerTalkBox,带源码,觉得还不错,这次决定还是用这个进行二次开发,改改,哈哈
首先要搞定的就是服务端调用飞信sdk和飞信客户端通讯,刚开始不懂飞信的sdk怎么用,后面网上找了一下,结果找到的都是php的,哎!看来不行,得自己写,呵呵,找了一些帮助文档,恩,相对来说还是比较简单的,玩了一下,服务端可以和飞信的客户端通讯了......,把飞信的sdk一些基本的东西贴出来....,嘿嘿
///
/// 登陆飞信
///
private bool FetionLogin(string userName,string pwd)
{
sdk.AccountManager.FillUserIdAndPassword(userName, pwd, false);//第三个参数为是否自动登陆
bool isOk=sdk.AccountManager.Login();//登陆
return isOk;
}
///
/// 发送消息
///
private void SendFetionMsg(string userName, string msg)
{
//userName为对方的飞信号,msg为要发送的信息
sdk.ContactControl.SendIM.SendIM(userName, msg);
}
///
/// 发送手机消息
///
private void SendFetionMobileMsg(string userName, string msg)
{
//userName为对方的飞信号,msg为要发送的信息
sdk.ContactControl.SendSMS.SendSMS(userName, msg);
}
///
/// 加载好友列表
///
/// 飞信sdk对象
/// 返回飞信好友信息集合
private List GetFetionFriendList(FetionSDK psSdk)
{
List fetionFriends = new List();
try
{
List list = psSdk.ContactControl.getAllContactList();
for (int i = 0; i (); }
return fetionFriends;
}
///
/// 飞信sdk出现错误
///
private void Sdk_SDK_Error(object sender, NullStudio.Fetion_SDK.Event.SDK_ErrorEventArgs fe)
{
}
///
/// 当前飞信号状态
///
private void Sdk_SDK_UserSatusChange(object sender, Imps.Client.Core.UserSatusChangedEventArgs e)
{
switch (e.NewStatus.ToString())
{
case "Disconnected"://断开了网络
FetionLogin(userName, userPwd);//重新登陆
break;
case "Initialized"://已初始化
break;
case "Loginning"://登陆中
break;
case "Logon"://已登陆
sdk.AccountManager.CurrentUser.Presence.AsyncChang eMainPresence(Imps.Common.MainPresence.Online, Imps.Common.MainPresence.Online.ToString());//设置PC在线
break;
case "Logoff"://离开网络
break;
case "Logouting"://注销中
break;
case "None"://无状态
break;
case "OfflineLogon"://离线
break;
case "StandBy"://待机
break;
case "WaitReconnect"://等待
break;
}
}
///
/// 接收到的消息
///
private void sdk_SDK_ReceiveMessage(object sender, NullStudio.Fetion_SDK.Event.SDK_ReceiveMessageEven tArgs fe)
{
//fe.Message为接收到的消息
}
恩,单这些就可以实现服务器跟客户端通讯的功能了.....
接下去就要搞定web和服务端之间的通讯了,这块比较变态点....,在Powertalkbox有接收消息和发送消息的事件刚开始看到的时候,高兴得要死,结果进去一看,只有接收消息的时候,在事件里能获取消息,发送消息获取不到....,悲剧了....,哎!没办法,只能去研究一下PowerTalkBox的发送事件怎么写了,后面看着看着实在不知道该怎么在那发送事件里重写sendevent,火大,直接在事件中弄一个全局静态变量,嘿嘿,这样在外面就可以调用了....,哈,这样就可以从web通过socket发送消息给服务端了。
服务端发送消息给web这个刚开始有点晕,后面干脆就直接去看PowerTalkBox是怎么发送消息的,结果发现那边消息都是全部存到一个list中,嘿嘿,这样就好办了,在PowerTalkBox那边做一个将消息添加到list中的服务,然后在服务端接收飞信消息的那事件中调用一下这个服务,将消息传入list中,嘿嘿,web那边就直接自动将消息显示出来了.....这样就搞定了,哈
感觉web这边用socket发送消息给服务端好像不太好.....,具体怎么个不好法说不大清楚....,嘿嘿,有什么好思路大家共享一下哈,嘿嘿
后记:在服务端这边还有一个小的问题,就是服务端这边飞信登录成功后差不多10分钟,就会掉线,我现在是做一个线程,每隔三分钟重新登录一下飞信,原本是做成改变一下状态的,不过还是不行,这样有时消息会丢失。后面发现好像可以使用一个什么移动的心跳包,在服务端每隔一段时间给移动那边发送一个包,这样就不会掉线了,嘿嘿,这个还值得研究研究
后面早上又做了一个监控网站的,如果网站不能浏览就发送短信给站长......,嘿嘿,上面的那些搞定了,其实这个也没什么了,哈,最主要是这里发送短信是直接发送到自己的手机上,嘿嘿,就是在发送消息的时候使用下面这方法:
//第一个参数直接这个,是给自己发送手机消息的意思,msg是要发送的内容
sdk.ContactControl.SendSMS.SendSMS(sdk.ContactCont rol.getMyself().Uri.Id,msg);
发表评论
-
apache1.3.39源码alloc.c阅读笔记
2012-01-20 00:48 641apache1.3.39源码alloc.c阅读笔记 2011 ... -
Web安全漏洞之:JDK1.5环境下扫描远程调试端口导致JVM崩溃【JDWP exit error JVMTI_ERROR_NONE(0)】
2012-01-20 00:48 1245Web安全漏洞之:JDK1.5环境 ... -
Lua的协同程序
2012-01-20 00:48 819Lua的协同程序 2011年03 ... -
同步 异步 阻塞 非阻塞
2012-01-20 00:48 632同步 异步 阻塞 非阻塞 2010年11月15日 阻塞: ... -
MaxDOS 8.0 发布,全面支持WIN7及X64系统
2012-01-17 01:05 1097MaxDOS 8.0 发布,全面支持WIN7及X64系统 2 ... -
单机MySQL数据库的优化
2012-01-17 01:05 663单机MySQL数据库的优化 ... -
DOS的命令
2012-01-17 01:05 589DOS的命令 2011年04月23日 先介绍一下通配符的 ... -
常用词汇解释
2012-01-17 01:05 561常用词汇解释 2011年02月10日 1*Android ... -
Linux下FrameBuffer直接写屏
2012-01-17 01:05 1404Linux下FrameBuffer直接写屏 2011年09月 ... -
关于手机开发socket笔记。
2012-01-15 19:47 702关于手机开发socket笔记。 2009年11月06日 ... -
提高 Linux 上 socket 性能
2012-01-15 19:47 506提高 Linux 上 socket 性能 ... -
【转】java socket程序
2012-01-15 19:47 516【转】java socket程序 200 ... -
Java-socket编程最基本介绍
2012-01-15 19:47 528Java-socket编程最基本介 ... -
Socket通信的网络仿真
2012-01-15 19:47 801Socket通信的网络仿真 2011年06月25日 这学 ...
相关推荐
PowerTalkBox客户端在线咨询asp.net在线客服PowerTalkBox客户端在线咨询asp.net在线客服PowerTalkBox客户端在线咨询asp.net在线客服PowerTalkBox客户端在线咨询asp.net在线客服
powertalkbox免费开源的asp.net,即时通讯控件与大家分享 这是一款免费开源的控件,作者的初衷是为了让来到网站上的人流资源更好的被把握住. 传统方式的弊端: 1、靠网站联系方式:有时来客会考虑到电话费的问题,如果...
在线客服系统 + 控件 asp.net PowerTalkBox开发聊天室教程
[聊天留言]PowerTalkBox 即时通讯源码(改进版)_powertalkbox(ASP.NET源码).rar
[聊天留言]PowerTalkBox 即时通讯源码(改进版)_powertalkbox.zip源码ASP.NET网站源码打包下载[聊天留言]PowerTalkBox 即时通讯源码(改进版)_powertalkbox.zip源码ASP.NET网站源码打包下载[聊天留言]PowerTalkBox ...
powertalkbox免费开源的asp.net,即时通讯控件与大家分享 这是一款免费开源的控件,作者的初衷是为了让来到网站上的人流资源更好的被把握住. 传统方式的弊端: 靠网站联系方式:有时来客会考虑到电话费的问题,如果...
本软件分两个部分,一个网站端源码,一个客户端源码,实现了,在线客服的功能。 此源码是网站端源码,使用步骤: a)运行/default.aspx页面,进入后台登陆。用户ID和密码: powertalkbox/admin b)登陆进入管理...
一套基于VS2005+SQL2000开发的asp.net,即时通讯控件PowerTalkBox即时通讯源码(改进版)
PowerTalkBox控件源代码v2.0PowerTalkBox控件源代码v2.0PowerTalkBox控件源代码v2.0PowerTalkBox控件源代码v2.0PowerTalkBox控件源代码v2.0
ASP.NET源码——[聊天留言]PowerTalkBox 即时通讯源码(改进版).zip
PowerTalkBox即时通讯源码 一个联系工具的源码
ASP.NET-[聊天留言]PowerTalkBox即时通讯源码(改进版).zip
powertalkbox免费开源的asp.net,即时通讯控件与大家分享 这是一款免费开源的控件,作者的初衷是为了让来到网站上的人流资源更好的被把握住. 传统方式的弊端: 1、靠网站联系方式:有时来客会考虑到电话费的问题,如果...
PowerTalkBox 多客服 客服 源码 代码示例 一个开源的客服控件,很不错的,用来做聊天室也不错
这是一款免费开源的控件,初衷是为了让来到网站上的人流资源更好的被把握住. 传统方式的弊端: 1,靠网站联系方式:有时来客会考虑到电话费的...即时聊天,即时通讯,在线客服,在线咨询,聊天室,开源,IM,免费,控件,在线聊天
客服控件使用API 开源的客服控件API,可以做多客服,聊天室之类的,使用非常简单
powertalkbox免费开源的asp.net,即时通讯控件与大家分享 这是一款免费开源的控件,作者的初衷是为了让来到网站上的人流资源更好的被把握住.
PowerTalkBoxWeb在线客服源码 分两个部分,一个网站端源码,一个客户端源码,实现了,在线客服的功能。 此源码是网站端源码,使用步骤: a)运行/default.aspx页面,进入后台登陆。用户ID和密码: powertalkbox/...
PowerTalkBox即时通讯源码(改进版) _ Visual Studio2005 C#PowerTalkBox即时通讯源码(改进版) _ Visual Studio2005 C#