websocket多人聊天php,php-notes/基于websocket实现多人聊天室.md at master · dd-code-site/php-notes · GitHub...

WebSocket

连接

断开

格式:ws://IP或域名:端口

发送

消息

var websocket;

var wsUrl;

function connect()

{

try {

wsUrl = $('#wsUrl').val();

websocket = new WebSocket(wsUrl);

websocket.onopen = function(event)

{

console.log('客户端与服务端连接成功');

connectChangeButton();

alert('连接成功');

}

websocket.onmessage = function(event)

{

push(event.data);

}

websocket.onclose = function(event)

{

console.log('连接已关闭');

disconnectChangeButton();

}

websocket.onerror = function(event)

{

alert('无法与服务端建立连接');

console.log('错误:' + event.data);

}

} catch (e) {

alert('无法与服务端建立连接');

}

}

function disconnect()

{

websocket.close();

disconnectChangeButton();

}

function push(content)

{

if ($('#websocket-content').children('.content-item').length >= 10) {

$('#websocket-content').children('.content-item:first-child').remove();

}

$('#websocket-content').append('

' + content + '
');

}

function send()

{

var msg = $('#msg').val();

websocket.send(msg);

$('#msg').val('');

}

function connectChangeButton()

{

$('#send').removeAttr('disabled');

$('#disconnect').removeAttr('disabled');

$('#connect').attr('disabled', 'disabled');

}

function disconnectChangeButton()

{

$('#send').attr('disabled', 'disabled');

$('#connect').removeAttr('disabled');

$('#disconnect').attr('disabled', 'disabled');

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmake学习(二)常用变量和常用环境变量

一、变量的引用方式是使用“${}”,在IF中,不需要使用这种方式,直接使用变量名即可 二、自定义变量使用SET(OBJ_NAME xxxx),使用时${OBJ_NAME}三、cmake的常用变量:CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR&am…

if和case用法比较

Case语句时并发语句,需要采用并行逻辑来实现,不存在逻辑的优先级别。If……else语句时多级嵌套语句,通常采用逻辑的串联来实现,该结构具有优先级别问题。这两种结构分别如下图所示: Always (a or b or c or d or s[1:…

CMake的使用

一、 基本使用 安装:下载二进制包后可直接解压使用 从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败 使用:cmake dir_path,生成工程文件或makefile文件 二、 概念 out-of-source …

PHP实训笔记,【学习笔记19】实验吧 让我进去

知识点MD5拓展攻击解题思路打开网站后看到,什么都没有,尝试抓包分析360截图17860604827894.PNGBurp 抓包发现,Cookie有东西。先是把source0改成source1,得到源码。、、、$flag "XXXXXXXXXXXXXXXXXXXXXXX";$secret "XXXXXXXX…

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章,都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说,都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码…

toolStrip 按钮图片大小的修改

http://www.cnblogs.com/smallsoftfox/archive/2012/06/21/2558323.html转载于:https://www.cnblogs.com/PatrickLee/p/3526708.html

oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化

Oracle11g中trace文件和日志文件的路径发生了变化在$ORACLE_BASE/diag建立了一些分类目录,用来保存各种日志:[oraclerac1 trace]$ cd $ORACLE_BASE[oraclerac1 oracle]$ cd diag[oraclerac1 diag]$ pwd/u01/app/oracle/diag[oraclerac1 diag]$ lsasm cli…

qt for v210

1. v210本身自带了qt4.8.4的qt库,路径在/usr/lib下面。但是我们需要对屏幕进行90度旋转。因此需要重新编译qt库。 我们编译了qt4.8.5的qt库,把/usr/lib下面libQt*删除,将编译好的libQt*拷贝过来即可。 2. 因为我们只用自己增加的文泉驿字体&…

DataGridView数据导入到Excel 中

#region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </summary> /// <param name"dgv">DataGridView对象 </param> /// <param name"isShowExcle">是…

cmake学习(一)静态库与动态库构建

(.so)共享库&#xff0c;shared object&#xff1a;节省空间&#xff0c;在运行时去连接&#xff0c;如果执行机器上没有这些库文件就不能执行。(.a)静态库,archive&#xff1a;静态库和程序化为一体&#xff0c;不会分开。通过 ldd命令可以查看一个可执行程序所依赖的的共享库…

oracle查表占的物理空间,查询Oracle表实际物理使用大小

Oracle中有两种含义的表大小一种是分配给一个表的物理空间数量&#xff0c;而不管空间是否被使用。可以这样查询获得字节数&#xff1a;select segment_name, bytesfrom user_segmentswhere segment_type TABLE;效果如下&#xff1a;或者Select Segment_Name,Sum(bytes)/1024/…

分布模式

Remote Facade远程外观 在OO模型中,存在很多规模小,且有小方法的对象.这些小对象会导致很多的对象间交互.在单一地址空间里,小对象没问题.但是,当在两个进程间做调用时,频繁的跨进程交互会造成性能开销.远程外观,减少远程调用的次数. 建立在大量的细粒度对象之上,提供一个粗粒度…

oracle分区表带入SQL语句,Oracle 分区表常用SQL语句 (转载)

*********为分区表建立一个单独的表空间*********/create tablespace ts_partition datafile /home/oracle/oradata/esales/partition.dbf size 10Mextent management local uniform size 2M;/*********建立分区表*********/create table bigtable(sale_date date,product_id n…

QT中PRO文件写法的详细介绍

在QT中&#xff0c;有一个工具qmake可以生成一个makefile文件&#xff0c;它是由.pro文件生成而来的&#xff0c;.pro文件的写法如下&#xff1a; 1. 注释 从“#”开始&#xff0c;到这一行结束。 2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择&am…

POJ 2485 Highways(最小生成树 Prim)

Highways大意&#xff1a;给你一个用邻接矩阵形式存储的有n个顶点的无向图&#xff0c;让你求它的最小生成树并求出在这个生成树里面最大的边的权值。 思路&#xff1a;用Prim求&#xff0c;判断条件改一下就行。 PS&#xff1a;dis数组初始化的时候用memset一直RE&#xff0c;…

oracle10g rac启动,ORACLE 10G RAC启动与关闭

rootnode-rac1 ~]# su - oracle关闭node-rac1[oraclenode-rac1 ~]$ cd /app/crs/product/10201/crs/bin/[oraclenode-rac1 bin]$ ./srvctl stop instance -d racdb -i racdb1[oraclenode-rac1 bin]$ ./srvctl stop asm -n node-rac1[oraclenode-rac1 bin]$ ./srvctl stop nodea…

iwconfig的用法(转)

1. 打开无线网卡电源iwconfig wlan0 txpower on2. 列出区域内的无线网络iwlist wlan0 scan3. 假设要连接到网络MyHome&#xff08;即essid为MyHome的网络&#xff09;&#xff0c;那么输入命令iwconfig wlan0 essid “MyHome” 如果网络是加密的&#xff0c;密码是0123456789&a…

oracle用户获取datameta权限,Oracle数据库提权(低权限提升至dba)

0x01 Oracle存储过程”缺陷”在 Oracle 的存储过程中&#xff0c;有一个有趣的特点&#xff1a;运行权限。运行权限分为两种&#xff0c;definer 和 invoker。definer 为函数创建者的权限&#xff0c;而 invoker 则是当前调用函数的用户。运行权限在函数创建时就已经被钦定了&a…

__thread 和 __typeof__关键字

__thread:在多线程变成中&#xff0c;使用于global变量&#xff0c;使每个线程都私有一份。static __thread int count;void *function1(void *argc){printf("porgran pid:%u, the function1 pthread id is %lu, count:%d\n",getpid(), pthread_self(), count);count…

RSA openssl_public_encrypt false

这个问题困扰了我好久&#xff0c;最后发现&#xff0c;原来这个函数只能最大长度为117个字节。如果加密的串超过这个长度&#xff0c;就会返回false。转载于:https://www.cnblogs.com/gpfeisoft/p/3533479.html