C# 调用腾讯即时通信 IM
IM SDK API 概述 https://cloud.tencent.com/document/product/269/33543
/// <summary>
/// IM SDK 初始化。
/// </summary>
/// <param name="sdk_app_id"></param>
/// <param name="json_sdk_config"></param>
/// <returns></returns>
[DllImport(@"imsdk.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public extern static int TIMInit(long sdk_app_id, string json_sdk_config);
/// <summary>
/// 登录
/// </summary>
/// <param name="user_id">用户id</param>
/// <param name="user_sig">签名</param>
/// <param name="cb"></param>
/// <returns></returns>
[DllImport(@"imsdk.dll", CallingConvention = CallingConvention.Cdecl)]
private extern static int TIMLogin(string user_id, string user_sig, TIMCommCallback cb);
/// <summary>
/// 接收新消息回调
/// </summary>
/// <param name="cb"></param>
[DllImport(@"imsdk.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private extern static void TIMAddRecvNewMsgCallback(delegateTIMRecvNewMsgCallback cb);
public void ImInit()
{
int sdk_app_id = ;
var data = new { sdk_config_log_file_path = AppDomain.CurrentDomain.BaseDirectory, sdk_config_config_file_path = AppDomain.CurrentDomain.BaseDirectory };
TIMInit(sdk_app_id, JsonConvert.SerializeObject(data));
TIMAddRecvNewMsgCallback(TIMRecvNewMsgCallback);
var tLSSig = new TLSSigAPIv2(sdk_app_id, "163250645178b565ffc0b22618d14a88d8a91d86f0e76813313197a5xxxxxxx");
TIMLogin("用户", tLSSig.GenSig("用户"), CommCallback); }
private delegate int TIMCommCallback(int code, string desc, string json_params); private int CommCallback(int code, string desc, string json_params)
{
return code;
}
private delegate void delegateTIMRecvNewMsgCallback(string json_msg_array,IntPtr user_data);
private void TIMRecvNewMsgCallback(string json_msg_array, IntPtr user_data) {
var b = Encoding.Default.GetBytes(json_msg_array);
richTextBox1.AppendText(Encoding.UTF8.GetString(b));
}
private void Form1_Load(object sender, EventArgs e)
{
ImInit();
}
C# 调用腾讯即时通信 IM的更多相关文章
- QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件
QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...
- Android 接入腾讯IM即时通信(详细图文)
原文地址:Android 接入腾讯IM即时通信(详细图文) | Stars-One的杂货小窝 腾讯云IM官网文档上提供了带UI模块和不带UI模块的,本文是基于带UI模块进行了Module封装,可以方便 ...
- 腾讯云即时通信 IM 服务 实例项目
腾讯云即时通信 IM 服务 https://github.com/tencentyun/TIMSDK
- 服务端搭建——腾讯云通信(IM)
前言 在手机app中因为需要即时聊天功能,在项目采用腾讯云通信服务.如下流程图: 当手机端拿到签名后,就可登录IM,使用im提供的sdk收发信息. 准备工作 1.在腾讯云注册获取appid 2.申请开 ...
- (转)基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案
在<基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案>一文中,提到尝试使用XMPP协议来实现即时通信.本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不 ...
- [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
转自:http://www.cnblogs.com/zhili/archive/2012/09/23/2666987.html 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例 ...
- .NET 即时通信,WebSocket服务端实例
即时通信常用手段 1.第三方平台 谷歌.腾讯 环信等多如牛毛,其中谷歌即时通信是免费的,但免费就是免费的并不好用.其他的一些第三方一般收费的,使用要则限流(1s/限制x条消息)要么则限制用户数. 但稳 ...
- IMLite轻量级即时通信工具开发指南
花了一周时间开发了一个简单的即时通信工具,勉强算是程序原型.现在我把开发流程和一些个人的想法记录下来.本文首先介绍程序架构和通信接口,之后会聚焦到服务器的信号槽设计原则,接下来将解释有关TCP通信的粘 ...
- 使用flask_socketio实现客户端间即时通信
前期没有来得及好好总结,现在复习总结一下: Socket.IO 背后主要的思想是你可以发送和接收想要的任何事件,携带你想要的任何数据.任何可以编码为 JSON 的对象都可以做到,并且也支持二进制数据. ...
随机推荐
- Qt窗口退出与事件循环退出的问题
我在Qt主程序中开启一个线程,线程中使用信号-槽来产生QMainWindow(GUI),main函数代码如下:int main(int argc, char *argv[]){ QApplicatio ...
- Android native进程间通信实例-binder篇之——解决实际问题inputreader内建类清楚缓存
我在实际开发中,遇到一个问题,在电容屏驱动中没有发送input_sync 给上层,导致电容屏有的数据缓存在inputreader 中,会导致系统一系列奇怪问题发生, 至于为什么驱动不发送input_s ...
- Spring Cloud Gateway报错:Unable to start embedded Tomcat
最近搭建Spring Cloud Gateway时启动项目出现如下报错信息: Error starting ApplicationContext. To display the conditions ...
- Django 的ORM 表间操作
Django之ORM表间操作 之前完成了简单的数据库数据增加操作.这次学习更多的表间操作. 单表操作 增加 方式一 b = Book(title="Python基础", pub ...
- Visual Studio Code 配置 EasyLESS,如果想用less,但又不想在组件中直接添加 style 时可以参考
在用 vue 画页面时,如果想用less,但又不想在组件中直接添加 style ,可以使用 vs code 的插件:EasyLess EasyLess 安装好后必须在 setting.json 中对它 ...
- MQTT linux centOS7 部署
系统版本centos7 X64 1.设置保存安装包路径 # cd /usr/local/src 2.开始下载源包 官网资源: https://mosquitto.org/files/source/ # ...
- JAVA反射(资源版)
关于JAVA反射的作用可以看这篇博客(说的很详尽): https://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html 下面是关于JAVA反射的 ...
- html里js的execCommand的一点用法
editorDoc.execCommand ('italic', false, null); 添加斜体 参考 http://help.dottoro.com/ljcvtcaw.php
- vue之tab切换
<style> .active{ color: red; } div a{ display: block; } </style> <script src="ht ...
- day6_logging模块
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/11 9:12 # @Author : 大坏男孩 # @File : da ...