精华内容
下载资源
问答
  • 什么是即时通讯(IM)?

    千次阅读 2009-11-02 14:48:00
    IM是英文Instant Messaging缩写,中文翻译成“即时通讯”,根据美国著名互联网术语在线词典NetLingo解释,其定义如下:“Instant Messaging(读成I-M)缩写为IM或IMing,它一种使人们能在网上识别在线用户并...

     什么是即时通讯?IM是英文Instant Messaging的缩写,中文翻译成“即时通讯”,根据美国著名的互联网术语在线词典NetLingo的解释,其定义如下:“Instant Messaging(读成I-M)缩写为IM或IMing,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,被很多人称为电子邮件发明以来最酷的在线通讯方式,典型的 IM是这样工作的:当好友列表(buddy list)中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话并键入消息文字进行交流。 IM被认为比电子邮件和聊天室更具有自发性,甚至你能在进行实时文本对话的同时一起进行WEB冲浪(surf)。目前有多种竞争的IM服务,不幸的是没有标准:即你想与之进行即时通讯对话的人必须使用和你一样的IM系统。另一个不利因素是IM还没有为安全性使用目的而设计。”

      除NetLingo的定义之外,还有一些其他定义,但由于NetLingo在互联网专业词汇释义方面具有比较大的影响,因此基本上都以此定义作为基础,同时NetLingo是在线更新的词典,它会经常针对互联网技术的变化对词汇释义进行修改,在本文中对即时通讯的定义就是最新的,以前的定义中并没有对标准化或者安全问题进行过相关说明。考虑到这些因素,本文将基于此定义进行研究。

      即时通讯的出现和互联网有着密不可分的关系,从技术上来说,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族是整个互联网得以实现的技术基础,最早期的即时通讯雏形可以追溯到芬兰人Jarkko Oikarinen于1988年发明的一种网络聊天协议IRC(Internet Relay Chat),该协议仅支持文本聊天,并且也不支持好友列表的概念,1996年第一个 IM产品ICQ发明后,即时通讯的技术和功能开始基本成型,其工作原理开始被人们所了解,但不同厂商实现即时通讯技术原理时采用的协议却有较大的差异,甚至到目前为止世界主要的 IM服务运营商AOL(American Online:美国在线)仍然没有公布其主要即时通讯产品AIM(American Instant Messenger)的专用协议。虽然如此,但我们仍然可以从一个提供最基本服务的 IM系统开始来描述IM的技术原理,不管目前产品的新功能如何丰富,它必须遵循这些基本原理和结构。

      首先,用户A输入自己的用户名和密码登录即时通讯服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在 IM系统中的状态为在线(Online Presence)。

      其次,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口(Port)号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。

      第三步,即时通讯服务器把用户A存储在服务器上的好友列表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的PC机上的IM客户端收到后将显示这些好友列表及其在线状态。

      接下来,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不通过 IM服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式(Peer To Peer)。在商用即时通讯系统中,如果用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢, IM服务器还提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。早期的IM系统,在IM客户端和IM服务器之间通讯采用采用UDP协议,UDP协议是不可靠的传输协议,而在 IM客户端之间的直接通讯中,采用具备可靠传输能力的TCP协议。随着用户需求和技术环境的发展,目前主流的即时通讯系统倾向于在即时通讯客户端之间、即时通讯客户端和即时通讯服务器之间都采用TCP协议。

     

    相关咨讯:

    什么是在线客服?
    常用即时通信软件QQ、Msn与灵通在线的不同
    相比传统的客服支持,在线客服有什么优势?

    【Reprinted from http://www.linkstalk.com/linkstalk_what_im.html

    展开全文
  • Riot-IM ,一个新型协作平台,可以在 iOS、Android、Web 端运行,完全由自身控制通用安全聊天应用程序。支持多大25种语言(支持中文),且还在不断地增加!可以应用到:即时通讯、视频会议、智能通知、机器人等...

    Riot-IM 介绍

     Riot-IM ,一个新型的协作平台,可以在 iOS、Android、Web 端运行,完全由自身控制的通用安全聊天应用程序。支持多大25种语言(支持中文),且还在不断地增加!可以应用到:即时通讯、视频会议、智能通知、机器人等。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天协作工具

    为什么值得使用?

    • 全面沟通

    聊天,交换文件,进行语音或视频通话和会议,以及添加漫游器。

    享受经典的聊天应用程序功能,并嵌入应用程序以在私人或企业环境中共享和协作。

    • 拥有自己的数据

    使用Riot-IM,您可以控制自己的信息。Riot-IM建立在Matrix之上,像电子邮件一样,多种服务可以彼此通信,并且像电子邮件一样,您可以使用您信任的服务或托管自己的服务。

    • 隐私

    私人对话可以端到端加密,因此只有您和其他参与者可以阅读它们。

    没有其他人可以读取,获利或破坏您的数据-通过可用的最佳加密方法来保护。

    • 透明

    Riot-IM是开源的,这意味着任何人都可以对其进行审核和定制。你知道你得到什么。这也意味着您可以离开注册的服务器,并在需要时迁移到您更信任的服务器。

    • 开放

    与其他应用程序不同,Riot-IM允许您跨越国界。通过桥接Slack和IRC等其他服务,不再为不同的团队,供应商和网络使用不同的应用程序。借助Matrix构建 ,其他人可以根据需要使用其他Matrix客户端与您聊天,并且您可以使用来自全球开源Matrix生态系统的机器人,集成和其他服务。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯软件聊天协作工具

     

    特性

    从休闲聊天到强大的协作功能,Riot-IM适合所有人使用:

    • 不仅仅是简单的聊天。自定义沟通

    无论您、是团队,家庭还是社区。无论是一对一聊天,小型私人团体还是大型公共团体。无论是想以可见的身份吸引更多成员,还是灵活地聚集不同实体和应用程序中的用户,独立且保密,以保护隐私。或者,如果同时追求所有这些功能,Riot-IM会让你宾至如归。根据主题,每个组,每个事件加入或创建房间。确定要提供的访问控制级别(仅在有权限的情况下才公开),历史记录显示的程度。创建自己的私人社区,以按主题对房间分组并对其进行过滤。深色主题或浅色主题-完全自定义!

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天协作工具
    • 选择信任谁的的服务器(即服务端,可以是自己的)

    通过选择信任的服务器或运行自己的服务器,选择将数据保留在何处。只需单击一下即可轻松配置服务器,并且可以通过高级功能(例如防病毒和自定义行为)进行扩展。服务器基于Matrix协议构建,始终可互操作,并且可以随时迁移服务器数据。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天协作工具
    • 安全

    所有数据都可以端到端加密,这意味着没有人可以窃听你的对话,甚至服务器管理员也无法窃听。我们使用当今可靠的最佳端到端加密。加密与安全密钥备份等功能保持友好关系,即使丢失或损坏设备,该功能也可以使您恢复加密的数据。同时,验证等高级功能会突出显示用户的帐户是否可能受到威胁。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天协作工具

     

    • 语音和视频会议

    Riot-IM在所有平台上提供一键式语音和视频通话以及会议。在移动设备上,像拨打普通电话一样。在会议期间,还可以与其他用户共享指向该用户的地址,即使他们不是Riot-IM用户,也允许他们通过浏览器加入。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件协作工具

     

    • 分享文件

    在任何对话中发送,接收和查看文件。拖放以快速共享,并在文件面板中轻松浏览档案或搜索文件。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件工具

     

    • 智能通知

    自定义通知以适合您的优先级。每当有人提及您的名字时都会收到通知,并定义关键字以在您关注特定主题时触发。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件工具

     

    • 其他应用(贴纸,小部件和机器人)

    直接从房间与其他应用程序和服务进行交互。使用Bot帮助完成任务。将小部件直接嵌入到房间中,以共同处理文档。以Matrix为基础,任何人都可以开发自己的集成必学网

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件协作工具

     

    • 桥接其他应用程序和网络

    与使用其他应用程序的用户进行沟通。在房间中,为另一个应用程序(如Slack Channel)添加一座桥,以透明地彼此对话,而无需离开各自的应用程序。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件协作工具

     

    • 跨端跨平台

    从任何地方从浏览器访问Riot-IM。在移动设备上,安装适用于iOS和Android的本地应用程序。在桌面上,安装适用于macOS,Windows和Linux的本机应用程序。

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件协作工具

     

    • 开放源代码

    Riot-IM是开源的,这意味着任何人都可以对其进行审核并提供新功能,翻译,修复错误并帮助Riot-IM成长!

    Riot-IM - 开源免费的及时通讯聊天协作工具
    Riot-IM - 开源免费的即时通讯聊天软件

    Github:

    Web端:https://github.com/vector-im/riot-web
    安卓端:https://github.com/vector-im/riot-android
    iOS端https://github.com/vector-im/riot-ios
    通信SDK:https://github.com/matrix-org/synapse

     

    总结

      Riot-IM - 是一个开源免费的即时通讯聊天软件协作工具,功能丰富且跨平台,本文部分内容源于官方介绍直译或者意译,或许不是非常准确,感兴趣的小伙伴们可以直接查看官方介绍,Enjoy it!

     

     

     

    展开全文
  • GM是什么,上网查查,IM4java是什么,也请上网查。以下介绍同样适合其他语言使用gm或是ImageMagick安装和中文乱码情况。ImageMagick也测试通过   1、下载如下,并全部解压(参见官方依赖下载地址ftp://ftp....

    GM是什么,上网查查,IM4java是什么,也请上网查。以下的介绍同样适合其他语言使用gm或是ImageMagick的安装和中文乱码的情况。ImageMagick也测试通过

     

    1、下载如下,并全部解压(参见官方依赖下载地址ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/delegates):

    libpng-1.6.19.tar.gz 支持png格式

    jpegsrc.v9.tar.gz支持Jpeg格式

    ghostscript-9.15.tar.gz支持字体

    GraphicsMagick-1.3.23.tar.gz主图片处理程序

    freetype-2.6.2.tar.gz字体引擎

     

    2、分别进入libpng、jpegsrc、freetype、ghostscript的解压目录,分别执行如下命令。

    ./configure

    make

    sudo make install

     

    3、进入GraphicsMagick解压目录,执行如下命令。

    ./configure --prefix=/usr/local/GraphicsMagick-1.3.23 --with-quantum-depth=16   --enable-shared --enable-static  --with-windows-font-dir=/Library/Fonts --with-gslib=no

    make

    make install

     

    注:

     --prefix:是指安装目录

     --with-quantum-depth:指图色深,16位还是8位

     --with-windows-font-dir:windows字体的安装目录

     

     GraphicsMagick执行完第一条./configure命令后,最后会有如下的内容,注意其中的Ghostscript、JPEG v1、PNG、FreeType的Configured value部分都应该是yes或是有值,这样才能基本支持jpeg\png和字体。

     

     

    Option            Configure option           	Configured value
     -----------------------------------------------------------------
     Shared libraries  --enable-shared=yes    	yes
     Static libraries  --enable-static=yes    	yes
     GNU ld            --with-gnu-ld=no        	no
     Quantum depth     --with-quantum-depth=16 	16
     Modules           --with-modules=no        	no
    
     Delegate Configuration:
     BZLIB             --with-bzlib=yes          	yes
     DPS               --with-dps=yes              	no
     FlashPIX          --with-fpx=no              	no
     FreeType 2.0      --with-ttf=yes          	yes
     Ghostscript       None                   	gs (unknown)
     Ghostscript fonts --with-gs-font-dir=default    none
     Ghostscript lib   --with-gslib=no       	no
     JBIG              --with-jbig=yes        	no
     JPEG v1           --with-jpeg=yes        	yes
     JPEG-2000         --with-jp2=yes          	no
     LCMS v2           --with-lcms2=yes        	no
     LZMA              --with-lzma=yes        	no (failed tests)
     Magick++          --with-magick-plus-plus=yes 	yes
     PERL              --with-perl=no            	no
     PNG               --with-png=yes          	yes (-lpng16)
     TIFF              --with-tiff=yes        	no
     TRIO              --with-trio=yes        	no
     WEBP              --with-webp=yes        	no
     Windows fonts     --with-windows-font-dir=	none
     WMF               --with-wmf=yes          	no
     X11               --with-x=             	no
     XML               --with-xml=yes          	yes
     ZLIB              --with-zlib=yes        	yes
    
     X11 Configuration:
    
       Not using X11.
    
     Options used to compile and link:
       CC       = gcc
       CFLAGS   = -g -O2 -Wall -D_THREAD_SAFE
       CPPFLAGS = -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2
       CXX      = g++
       CXXFLAGS = -D_THREAD_SAFE
       DEFS     = -DHAVE_CONFIG_H
       LDFLAGS  = 
       LIBS     = -ljpeg -lpng16 -lbz2 -lxml2 -lz -lm -lpthread

     

     

       

    4、配置环境变量(对于java中im4java调用,以下配置无意义,所以此步也可省略):

     

    export GMAGICK_HOME=/usr/local/GraphicsMagick-1.3.18
    export PATH="$GMAGICK_HOME/bin:$PATH" 
    
    export IM4JAVA_TOOLPATH=$GMAGICK_HOME/bin/gm

     

     

     

    5、终端中输入如下命令进行测试。

     

    gm convert 111.jpg 222.png
    gm convert 111.jpg -resize 100x100 out.jpg
    gm convert -list formats
    gm convert Arial -fill white -pointsize 24 -draw "text 10,15 'lifesinger 2006' "  /Users/xxx/Documents/temp/2.png /Users/xxx/Documents/temp/2new.png

     

    6、JAVA代码例子。

    注:网上的文章针对中文乱码的原因解释大多都是错的,首先可确定是GM如上版本是肯定支持中文水印之类的,也不存在什么单数中文和双数中文支持的问题。并且还看到有人先用AWT生成透明底的水印图片,再把主图与这个水印图片用GM合并。别的不说,用awt与gm的这两方案性能比较一下,你就会发现是数量级的差别,就先不提图片质量和大小等。

    关键是两点:

    a.要使用中文字体,使用非中文字体会乱码。

    b.GM只接收UTF-8的内容,否则乱码,所以传的值要UTF-8编码。你可以整个*.java文件设置为utf-8编码,也可以对传入的水印内容String转成uft-8编码。如以下例子的WaterMark.java文件即为utf-8编码。

    import org.im4java.core.ConvertCmd;
    import org.im4java.core.IM4JavaException;
    import org.im4java.core.IMOperation;
    import org.im4java.process.Pipe;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class WaterMark {
        public static void main(String[] args) throws Exception {
            String src="/Users/xxx/Documents/temp/test/ban.jpg";  //需要加水印的源图片
            String desc="/Users/xxx/Documents/temp/test/new/abc"; //生成的水印图片的路径
    
    //        String src1="/Users/xxx/Documents/temp/test/icon.jpg";  //需要加水印的源图片
    //        String desc1="/Users/xxx/Documents/temp/test/new/icon"; //生成的水印图片的路径
            String content = "中文";
    
            for (int i = 0; i < 10; i++) {
                addImgText(src, content + i, desc + i + ".jpg");
            }
    
    //        for (int i = 0; i < 1; i++) {
    //            addImgText(src1, content + i, desc1 + i + ".jpg");
    //        }
        }
    
        /**
         * 给图片加水印
         * @param srcPath   源图片路径
         */
        public static void addImgText(String srcPath, String content, String desc) throws Exception {
            IMOperation op = new IMOperation();
            op.font("/Library/Fonts/Yuanti.ttc").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 10,15 '" + content + "'").quality(90.0);
            op.addImage();
            op.addImage();
    
            ConvertCmd cmd = new ConvertCmd(true);
    
            cmd.setAsyncMode(true);
            cmd.setSearchPath("/usr/local/GraphicsMagick-1.3.18/bin");// 如果是windows则需要设置convert路径
    
            try {
                cmd.run(op,srcPath,desc);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (IM4JavaException e) {
    
                e.printStackTrace();
            }
        }
    
    }

     

    展开全文
  • 基于JABBER的IM通讯

    2009-12-01 17:27:00
    基于JABBER的IM通讯 本来准备做一个项目的,项目要求用JABBER实现IM的功能,所以就开始研究这个协议了。这个协议其实就是一个在线的EMAIL系统,当然还包含了IM的功能。现在在RFC中,这个协议的标准叫XMPP...
    hell
    o
    展开全文
  • 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和_,字母全部大写,单词之间用_...
  • 什么是Blog?

    2010-02-21 20:35:00
     Blog全名应该Web log,中文意思“网络日志”,后来缩写为Blog,而博客(Blogger)就是写Blog人。从理解上讲,博客“一种表达个人思想、网络链接、内容,按照时间顺序排列,并且不断更新出版方式”。简单...
  • sns/bbs/im

    2009-05-15 17:24:16
    SNS是什么?它是Social Networking Service缩写,译为中文就是社会网络服务意思。从微软MSN Spaces和YahooYahoo! 360°中,我们可以看到SNS最大特征在于能够让我们建立一个属于私人可以和朋友在网上交流...
  • openfire+spark相关的中文资料

    千次阅读 2011-05-04 13:06:00
    开发你自己XMPP IM - [J2EE] 最近没在Blog 上露脸,为撒类?应师兄请求,帮他研究一... 所以我基本上分为三篇文章来介绍此类软件开发: 第一篇关于XMPP 协议啥,IM 啥以及一个比较有
  • 一位网友问我如何在LinuxQt应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行。不仅Qt制作应用程序,就连Qt Creator都无法支持。后面看了一些资料,了解了Qt应用程序方法,...
  • 在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制。 实际问题这样的:首先启动openfire服务器,然后利用客户端或直接...
  • 你现在使用输入法具体是什么?另外你是用 ibus 吗? 在启动文件中输入 export XMODIFIERS="@im=ibus" export GTK_IM_MODULE="ibus" export QT_IM_MODULE="ibus" 然后启动 WebStorm 试试。 如果不行话,你再换...
  • <div><p>嵌入式平台(ARM9),按照... 我哪地方弄不对 还是哪里还需要做什么操作??? 另工程配置中没有定义 不使用输入法 WITH_NULL_IM</p><p>该提问来源于开源项目:zlgopen/awtk</p></div>

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

im的中文是什么