zoukankan      html  css  js  c++  java
  • MQTT实现长连接,IM最简单实例

    更多技术性文章请关注 合伙呀

    1,引入MqttSDK.

    2, 头文件

    #import "MQTTSession.h"

    //定义主题
    #define kTopic @"lichanghong"
    //服务器ip
    #define kIP @"192.168.2.204"

    @interface ViewController : UIViewController
    @property (nonatomic, strong) MQTTSession *session;

    @end

    3,实现

    - (void)viewDidLoad {
      [super viewDidLoad];
      //连接
      _session = [[MQTTSession alloc] initWithClientId:@"12345"];
      [_session setDelegate:self];
      [_session connectToHost:@"192.168.2.204" port:1883];
      // [_session publishDataAtLeastOnce:[@"publish data..." dataUsingEncoding:NSUTF8StringEncoding] onTopic:@"lichanghong"];
    }

    #pragma mark - MQtt Callback methods

    - (void)session:(MQTTSession*)sender handleEvent:(MQTTSessionEvent)eventCode {
      switch (eventCode) {
        case MQTTSessionEventConnected:
          [_session subscribeTopic:@"lichanghong"];
          NSLog(@"connected");
          
          break;
        case MQTTSessionEventConnectionRefused:
          NSLog(@"connection refused");
          break;
        case MQTTSessionEventConnectionClosed:
          NSLog(@"connection closed");
          break;
        case MQTTSessionEventConnectionError:
          NSLog(@"connection error");
          NSLog(@"reconnecting...");
          // Forcing reconnection
          [_session connectToHost:kIP port:1883];
          break;
        case MQTTSessionEventProtocolError:
          NSLog(@"protocol error");
          break;
      }
    }

    - (void)session:(MQTTSession*)sender  newMessage:(NSData*)data  onTopic:(NSString*)topic {
      NSLog(@"new message, %lu bytes, topic=%@", (unsigned long)[data length], topic);
      NSString *payloadString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
      NSLog(@"data: %@ %@", payloadString, data);
    }

  • 相关阅读:
    基于NFS共享存储实现KVM虚拟主机动态迁移
    基于mysqld_multi实现MySQL 5.7.24多实例多进程配置
    LVS负载均衡实现双向设备
    基于Haproxy构建负载均衡集群
    基于Haproxy+Keepalived构建高可用负载均衡集群
    nginx与keepalived实现高可用
    直接路由模式(LVS-DR)
    Tomcat多实例配置
    Tomcat 安全优化
    基于 Jenkins + Git 项目 中Git主机的 安装配置
  • 原文地址:https://www.cnblogs.com/huntaiji/p/4086607.html
Copyright © 2011-2022 走看看