自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(83)
  • 收藏
  • 关注

原创 redis数据类型 - String

String类型最简单的类型,一个key对应一个value,string类型是二进制安全的。redis是string可以包含任何数据,比如jpg图片或序列化的对象相关操作set 设置一个 key-value键值对:set name jacksetnx nx是not exist的意思,不存在才添加,成功返回1,失败返回0,说明key已存在:setnx name jack

2016-02-29 11:07:13 436

原创 redis的安装

安装将 redis-2.4.17.tar.gz上传到/lamp目录下: cd /lamptar -zxvf redis-2.4.17.tar.gzcd redis-2.4.17makecd srcmake install提示如下信息说明安装成功: mkdir -p /usr/local/bincp -pf redis-server /us

2016-02-28 20:39:44 460

原创 mysql root密码丢失

2016-02-26 21:19:58 369

原创 mysql慢查询日志

1.查看mysql是否开启了慢查询日志mysql>show variables like "%slow%";2.开启mysql慢查询日志:vi /etc/my.cnf保存my.cnf后,重启mysql服务.

2016-02-26 21:18:03 452

原创 mysql索引优化

2016-02-26 20:33:06 361

原创 优化SQL语句一般的步骤

2016-02-26 19:44:59 531

原创 PHP定义命令空间的几个注意点

1.声明命令空间必须是程序脚本的第一条语句。另外,所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。下面是错误的示例:<?phpnamespace MyProject; // 致命错误 - 命名空间必须是程序脚本的第一条语句?>这个也是错误的<?php // Lots // of // interesting // comments and white space

2016-02-26 16:07:48 638

原创 jquery查找ul>li里 img的 alt属性="xxxx"时,img的src的值

html: jquery:function getSRC(alt){ return $('.list-h li').find('img').filter('[alt="'+alt+'"]').attr('src'); }

2016-02-26 09:57:58 6925

原创 mysql主从复制

mysql主从复制的作用:主服务器配置:这里建议用msyqldump备份 为xxx.sql从服务器的配置:从数据库其它命令:常见错误:

2016-02-25 22:10:53 400

原创 msyql从bin-log日志恢复数据

mysql备份备份test数据库的数据:mysqldump -uroot -p123456 test -l -F > /tmp/test.sql# -F 即flush logs,可以重新生成新的日志文件,包括log-bin日志# -l 读锁,备份期间不能写只能读查看bin-log日志:mysql>show master status; mysql的备份的恢复:mysql -uroot -

2016-02-25 21:10:25 1921

原创 mysql bin-log日志

开启mysql bin-log 日志:vi /etc/my.cnf查看bin-log日志:与bin-log有关的日志刷新:mysql备份:

2016-02-25 20:44:29 432

原创 MySQL用户授权

登录mysql数据库:mysql>mysql -uroot -p 123456查看用户授权表:select user,host,password from mysql.user;在主服务器上给从服务器设置授权用户:1.mysql>grant all on *.* to user1@192.168.10.2 identified by "password";(表示:授权所有的权限关于所有的数据库的

2016-02-25 20:15:01 482

原创 04环信聊天界面 - 显示历史会话记录

1.在消息控制器获取历史回话记录/** * 获取历史会话对象记录 */- (void)loadConversations{ // 当前登录用户回话对象列表 NSArray *conversations = [[EaseMob sharedInstance].chatManager conversations]; if (conversations.count ==

2016-02-22 22:42:53 11289

原创 04环信聊天界面 - 显示时间的cell

1.拖一个UITableViewCell,再向里面添加一个UILabel,设置label垂直居中对齐,水平居中对齐。自定义一个继承与UITabelViewCell的TimeCell类。2.聊天控制器tableView的dataSoures之前是存放的 EMMessage 消息模型,现在需要加入 时间(字符串)。我们采用的方案是单独写一个方法来添加数据源,在此方法里,判断是否要给数据

2016-02-22 20:09:55 4448

原创 Mac电脑使用MAMP PRO作为php集成环境,在连接mysql的注意点

当我们在Mac上使用MAMP的时候,连接mysql设置数据库主机地址,可能"127.0.0.1"连接不上。解决方案是使用:localhost还可能多配置一项:unix_socket下面距离,在ThinkPHP 3.2.3中的数据库配置://数据库配置信息 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost

2016-02-22 12:01:26 8635

原创 04环信聊天界面 - 发送图片消息和显示图片

1.在聊天控制器连线/** * 点击上传图片 */- (IBAction)showImgPickerAction:(UIButton *)sender{ // 图片选择控制器 UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init]; imgPicker.source

2016-02-21 15:51:13 12646

原创 04环信聊天界面 - 播放语音消息

分析:需要监听messageLabel的点击事件,然后播放1.在chatCell里给messageLabel添加点击事件/** * 初始化 */-(void)awakeFromNib{ // 1.给messageLabel添加手势 self.messageLabel.userInteractionEnabled = YES; UITapGestureRecog

2016-02-20 19:44:31 4154

原创 04环信聊天界面 - 完善语音消息在cell上的显示

1.在发送语言的方法里,把语言消息添加到数据源,并刷新表格/** * 发送语音 * * @param recordPath 语音文件路径 * @param duration 时间 */- (void)sendVoice:(NSString *)recordPath duration:(NSInteger)duration{ // 1.构造一个 语音消息体 E

2016-02-19 20:59:32 2135

原创 04环信聊天界面 - 发送语音

1.拖一个按钮覆盖textView,设置高度和textView一样,左右下的约束和textView一样。默认隐藏。点击了左边vioceBtn按钮才显示#pragma mark - action/** * VoiceBtn被点击了 */- (IBAction)clickedVoiceBtn:(UIButton *)sender{ // 按钮图片切换 self.vo

2016-02-18 21:57:40 4972

原创 04环信聊天界面 - 完善聊天输入框

一、设置inputToolbar的高度,随着输入文字的增多而改变1.连线inputToolbar的高度的约束:2.在UITextViewDelegate代理方法 - textViewDidChange:计算高度#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{

2016-02-17 22:29:34 2574

原创 04环信聊天界面 - 监听消息回复

1.在聊天控制器的viewDidLoad添加代理:// 4.设置聊天管理器的代理 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];2.遵守协议@interface ChatViewController ()3.实现代理方法:#pragma mark - EMCallManagerDele

2016-02-16 20:20:33 3802

原创 04环信聊天界面 - 加载本地聊天记录

1在聊天控制器.加载聊天记录,并添加到数据源:/** * 加载本地的聊天记录 */- (void)loadLocalChatRecords{ EMConversation *conversation = [[EaseMob sharedInstance].chatManager conversationForChatter:self.buddy.username conversat

2016-02-16 20:08:55 6253

原创 04环信聊天界面 - 发送聊天消息

聊天界面布局完成,下面我们来完成发送消息功能。连线设置textView的为聊天控制器。然后监听textView文字的改变,如果用户有输入回车符,表示“发送”消息#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{ //监听用户是否点击了键盘的"Send"按钮 -- 判

2016-02-16 19:20:05 5601 1

原创 04环信聊天界面 - 计算cell的高度

我们这计算cell的高度,主要是内部UIlabel的高度。如果label上文字已设置,就可以确定label的高度。所以,我们在cell里提供一个方法://// ChatCell.m#import "ChatCell.h"@implementation ChatCell- (CGFloat)cellHeight{ // 1.重新布局子控件(后label的高度已经确

2016-02-14 22:15:36 1364

原创 04环信聊天界面 - 接收方cell的布局

1.拖一个UITabelViewCell到聊天界面的tableView里。cell里需要添加3个控件,1个UIImageView作为头像,一个UILabel(显示聊天文字),另一个imageView(作为label的背景)。控件关系:背景的imageView其实就是聊天气泡,文字在气泡内,文字和气泡有边距。头像尺寸35x35, UILabel设置Lines属性为0就可以换行,并且要

2016-02-14 21:10:20 2496 1

原创 04环信聊天界面 - 底部工具栏布局

1.界面布局2.演示效果3.聊天控制器代码如下://// ChatViewController.m#import "ChatViewController.h"@interface ChatViewController ()/** * inputToolbar(输入工具栏)底部的约束 */@property (weak, nonatom

2016-02-13 21:14:34 2041

原创 02环信集成SDK基础功能 - 退出登录

1.界面布局,相关配置 2.设置控制器代码//// SettingViewController.m#import "SettingViewController.h"#import "EaseMob.h"@interface SettingViewController ()@property (weak, nonatomic) IBOutlet UIButton *lo

2016-02-13 19:08:17 2760

原创 03环信好友管理 - 删除好友

要实现的效果:方法:#pragma mark - tableViewDelegate/** * 实现这个方法,滑动表格cell就会出现Delete按钮 */- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowA

2016-02-13 16:50:16 2530

原创 03环信好友管理 - 监听"加好友"的请求

监听加好友请求当您收到好友请求,如果您没有处理,则您每次登录的时候,服务器都会给你发该请求, 请确保你在登录成功之前已经注册了监听。需求:用户test6向用户test发送“加好友”请求,用户test处理(同意或拒绝),并且同意后要刷新联系人表格。实现:需要实现2个回调方法,具体如下:/*! @method @brief 好友请求被拒绝时的回调 @discussion @pa

2016-02-13 16:23:03 4896

原创 03环信好友管理 - 好友请求同意后刷新联系人列表

需求:当用户test向用户test3申请添加好友,test3同意后,用户test的联系人列表应该刷新(最初没有test3这个好友)实现:所以我们应该在“好友请求”被接受时的回调方法里,向服务器请求最新的好友数据我们这里需要在ContactViewController控制器的 - didAcceptedByBuddy:方法中添加一些代码,最终该方法代码如下:#pragma mark - EM

2016-02-13 15:33:08 2700

原创 03环信好友管理 - 获取好友列表

获取好友列表,环信提供了4种方法。从本地获取:该方法比较特殊,只有在您之前获取过好友列表的情况下才会有值,且不能保证最新。NSArray *buddyList = [[EaseMob sharedInstance].chatManager buddyList];另外3种都是从服务器上获取://1. 同步方法EMError *error = nil;NSArray *buddyList

2016-02-13 13:19:55 8482

原创 03环信好友管理 - 添加好友(好友申请处理结果回调)

我们把环信官方的demo项目中的AppKey改成我们自己的:在AppDelegate+EaseMob.m文件中。然后用test1用户登录,查看发现收到了,test这个用户的 添加好友的申请1.好友申请处理结果回调我们这里选择在联系人控制器ContactViewController里监听//// ContactViewController.m#import "Conta

2016-02-13 11:40:02 4871

原创 03环信好友管理 - 添加好友(好友申请)

EMChatManagerBuddyDelegateØ上面的协议的实现了对用户的基本操作,如(1)添加好友(2)从本地获取好友列表(3)从服务器获取最新好友列表(4)接收好友添加请求(5)删除好友(6)被好友从名单上删除1.搭建界面,创建相关控制器2.在AddFriendViewController控制器里:/** * 添加好友

2016-02-13 10:32:15 4501

原创 02环信集成SDK基础功能 - 网络掉线自动重连

当掉线时,IOS SDK会自动重连,只需要监听重连相关的回调,无需进行任何操作。//// MessageViewController.m#import "MessageViewController.h"#import "EaseMob.h"@interface MessageViewController ()@end@implementation MessageViewC

2016-02-12 21:44:03 3623

原创 02环信集成SDK基础功能 - 自动登录

自动登录:即首次登录成功后,不需要再次调用登录方法,在下次app启动时,SDK会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。 配置是否进行自动登录SDK中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次app启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。1.修改登录方法,设置自动登录/** * 登录 */- (IB

2016-02-12 21:22:16 3604

原创 02环信集成SDK基础功能 - 注册&登录

1.创建一个Login.storyboard并设置为Main Interface。2.创建控制器//// LoginViewController.m#import "LoginViewController.h"#import "EaseMob.h"@interface LoginViewController ()@property (weak, nonat

2016-02-12 21:03:00 1713

原创 01环信iOS SDK的集成

零.什么是环信?环信是一个第三平台,提供即时通信(IM –Instant Messaging )的服务环信是在XMPP的基础上进行二次开发环信在网络上传输的数据也是XML使用环信,不用自己搭建服务器,节约成本环信日活30万以下,永远免费公司如要开发即时通讯软件,建议首选环信,环信占用市场份额较大一.集成环信的前提准备注册成为环信开发者http

2016-02-12 19:57:15 865

转载 XMPP协议了解

一.Socket层上的协议Socket层上的协议指的数据传输的格式HTTP协议   传输格式:假设:这是假设,实际http的格式不是这样的。  http1.1,content-type:multipart/form-data,content-length:188,body:username=zhangsan&password=123456XMPP协议,是一款即时

2016-02-12 15:20:49 699

原创 Soket转发消息服务(群聊)

编写群聊服务端代码,稍加改写之前的10086服务端的代码,如下://// ServiceListener.m#import "ServiceListener.h"#import "GCDAsyncSocket.h"@interface ServiceListener() /** * 服务器端的socket对象 */@property(nonatomic,strong)

2016-02-12 14:43:09 881

原创 实现Socket服务端监听(模拟10086在线服务)

实现socket的监听方法(1)使用C语言实现,(2)使用CocoaAsyncSocket第三方框,内部是对C的封装https://github.com/robbiehanson/CocoaAsyncSocketTelnet命令telnet host port/telnet 192.168.10.10 52881.telnet命令是连接服务器上的某个端口对应的服务

2016-02-12 12:14:27 2719

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除