Js 调用c# websocket通信 c# 调用硬件c++图像 web端显示

本文描述了如何在Web端通过C#封装C++SDK,利用Fleck库实现WebSocket通信,实现实时调用C++接口进行图像捕获并将结果返回给前端展示的过程。开发者构建了一个Winform应用,并介绍了相关的技术选型和代码实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一段时间有个朋友要帮忙做一个在web端调用硬件的sdk。沟通后才知道是买的供应商的一套视频设备。由于视频设备的软件和sdk只有c++版的,于是给他们中间做了一层c# 封装。技术方案呢开始时想用ocx 插件来做。后来觉得后期给客户安装比较麻烦,后面改成了websocket 来做。

websocket c#端采用 Fleck 来接收和发送报文。

工程类型可以采用winform 、控制台或者window服务都可以

我这里就用winform 做个介绍

首先创建一个winform 工程解决方案

NuGet程序包管理器下载Fleck即可

由于要用到转json所以也下了Newtonsoft.Json

c# 端实现的是一个 调用c++的接口函数 拍照。拍照固定保存到电脑硬盘地址。调用完成之后c# 返回文件地址给到前端去显示。

调用c++接口函数

        private const string dllPath = @"WinDLL.dll";

        [DllImport(dllPath, EntryPoint = "DrawGraph", CallingConvention = CallingConvention.Cdecl)]
        public unsafe static extern int DrawGraph(int width, int height, IntPtr mhwnd);

websocket 端口号可以自己定,我这里是8181

WebSocketServer server = new WebSocketServer("ws://0.0.0.0:8181");

接下来在构造函数里开启socket服务

StartWebSocket();

Socket 接收到消息后解析数据,根据数据命令判断执行接口,这里是调用c++拍照后画图显示。图像保存到本地后回传给网页端。当然这里也可以上传到云端服务器都可以。

server.Start(socket =>
            {
                socket.OnOpen = () =>
                {
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值