webSocket 对接易思科人脸识别
刚开始一直在网上摸索一直没有头绪,下载了好多有关websocket服务方面的资料demo,刚调试通过,就来写个日记,记录下遇到的坑。那里写的不对的请大家多担待,写的只是自己的理解,废话不多说了websocket 百度百科WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。Web...
刚开始一直在网上摸索一直没有头绪,下载了好多有关websocket服务方面的资料demo,
刚调试通过,就来写个日记,记录下遇到的坑。那里写的不对的请大家多担待,写的只是自己的理解,废话不多说了
websocket 百度百科
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。
当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据
客户端向服务器发送请求需要用到 在线websocket连接"http://www.jsons.cn/websocket/"
通过这个可以判断有没有连接上websocket服务器
然后就可以建立自己的websocket服务器了。
新建立一个web项目,然后添加一个一般处理程序,代码如下
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
CreateLog("开始", "记录信息");
if (context.IsWebSocketRequest) // 判断是否时websocket访问
{
CreateLog("进入websocket服务", "记录信息");
context.AcceptWebSocketRequest(ProcessChat);
}
else
{
CreateLog("不是webSocket访问", "记录信息");
}
}
private async Task ProcessChat(AspNetWebSocketContext context)
{
WebSocket socket = context.WebSocket; // 获取到请求的websocket对象
string deviceNo = "";
try
{
string descUser = string.Empty;//目的websocket服务
while (true)
{
if (socket.State == WebSocketState.Open) // 服务是否时开启状态
{
}
else
{
break;
}
}
}
catch (Exception ex)
{
//整体异常处理
if (CONNECT_POOL.ContainsKey(deviceNo)) CONNECT_POOL.Remove(deviceNo);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
易思科的人脸识别设备配置
拿到设备后,输入设备号和密码
进入公共设置
wifi管理:“如果没有网线可以开启自己的热点调试”
设备联网方式:“我是选择的HTTp”
添加一个日志文件,方便自己调试
/// <summary>
/// 日志文件
/// </summary>
/// <param name="message">日志信息</param>
/// <param name="title">日志标题</param>
public static void CreateLog(string message, string title)
{
//string path = Directory.GetCurrentDirectory() + "\\LoginfoMsg";
string path = "C:\\LoginfoMsg";
string filename = path + "\\MsgLog.txt";
string cont = "";
FileInfo fileInf = new FileInfo(filename);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if (File.Exists(filename))//如何文件存在 则在文件后面累加
{
FileStream myFss = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamReader r = new StreamReader(myFss);
cont = r.ReadToEnd();
r.Close();
myFss.Close();
}
FileStream myFs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamWriter n = new StreamWriter(myFs);
n.WriteLine(cont);
n.WriteLine("------------------------------------------------------Begin-------------------------------------------------");
n.WriteLine("*****" + title + "*****");
n.WriteLine("时间:" + DateTime.Now.ToString());
n.WriteLine("信息:" + message);
n.WriteLine("-------------------------------------------------------end--------------------------------------------------");
n.Close();
myFs.Close();
if (fileInf.Length >= 1024 * 1024 * 200)
{
string NewName = path + "MsgLog" + DateTime.Now.ToShortDateString() + ".txt";
File.Move(filename, NewName);
}
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)