- 服务器端广播文本
- 所有客户端都可以收到

--- 客户端

- 定义文本框
- 定义发送事件
textarea accesskey =t oninput="sendmsg();"
- 发送协议
ws:// 普通web-socket
wss:// 加密web-socket

客户端-创立连接

var ws,currentUser,ele;
window.onload = function() {
ws = new WebSocket("ws://my server:8887"); // 连接建立成功onopen事件会被调用
ws.onopen = function() {
$("status").innerHTML = 'online';
$("status").style.color = 'green'; // 消息接受成功会唤起消息
ws.onmessage = function(e) {
var msg;
try {
msg = JSON.parse(e.data);
} catch (SyntaxError) {
$("debug").innerHTML = "invalid message";
return false;
}
}

客户端-发送消息

function sendmsg()  {
ws.send($("ta").value);
}
// 关闭事件
ws.onclose = function(e){
$("status").innerHTML = 'offline';
$("status").style.color = 'red';
}; window.onunload = function(){
ws.close();
};

服务器端-创建连接

var ws = require(__dirname + '/lib/ws'),
server = ws.createServer();
var user_cols = {};
server.addListener ("connection", function(conn) {
var h = conn._server.man ager.length*70;
// 使用不同颜色标注用户ID
user_cols[conn.id] = "hsl("+h+",100%,30%)";
var msg = {};
msg.user = conn.id;
msg.color = user_cols[conn.id];
msg.text = "<em>一个新的用户加入聊天!</em>";
// 广播
conn.broadcast(JSO N.stringify(msg));
}

服务器端-监听广播

conn.addListener("message",  function(message) {
var msg = {};
// 防注入处理
message = message.replace(/</g, "&lt;");
message = message.replace(/>/g, "&gt;");
msg.text = message;
msg.user = conn.id;
msg.color = user_cols[conn.id];
// 输出内容
conn.write(JSON.st ringify(msg));
// 广播
conn.broadcast(JSO N.stringify(msg));
});
});

服务器端-关闭

server.addListener("close",  function(conn)  {
var msg = {};
msg.user = conn.id;
msg.color = user_cols[conn.id];
msg.text = "<em>一个用户已经离开了聊天!</em>";
conn.broadcast(JSO N.stringify(msg));
});
server.listen(8887);

HTML5之广播聊天室的更多相关文章

  1. web 开发之js---HTML5之广播聊天室

    那个头标题很有意思js做的 http://www.cnblogs.com/xgao/p/4200985.html

  2. h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗

    这段时间一直在着手h5开发手机端聊天系统——html5仿微信聊天室,最近又在原先基础上开发了一个仿微信.微博网页web版聊天系统,使用到了HTML5+css3+jQuery+wcpop等技术开发,弹窗 ...

  3. WebSocket 网页聊天室

    先给大家开一个原始的websocket的连接使用范例 <?php /* * recv是从套接口接收数据,也就是拿过来,但是不知道是什么 * read是读取拿过来的数据,就是要知道recv过来的是 ...

  4. 使用Html5下WebSocket搭建简易聊天室

    一.Html5WebSocket介绍 WebSocket protocol 是HTML5一种新的协议(protocol).它是实现了浏览器与服务器全双工通信(full-duplex). 现在,很多网站 ...

  5. WebSocket 网页聊天室的实现(服务器端:.net + windows服务,前端:Html5)

    websocket是HTML5中的比较有特色一块,它使得以往在客户端软件中常用的socket在web程序中也能轻松的使用,较大的提高了效率.废话不多说,直接进入题. 网页聊天室包括2个部分,后端服务器 ...

  6. HTML5 - websocket的应用 之 简易聊天室

    需要知识点: 前端知识 jq操作dom nodejs socket.io 关于websocket api的知识点,见上篇章<HTML5-Websocket>. 聊天室思路/原理: A和B聊 ...

  7. HTML5新特性 websocket(重点)--多对多聊天室

    一.html5新特性  websocket(重点)--多对多聊天室 HTTP:超文本传输协议 HTTP作用:传输网页中资源(html;css;js;image;video;..) HTTP是浏览器搬运 ...

  8. php +html5 websocket 聊天室

    针对内容比较长出错,修改后的解码函数 和 加码函数 原文请看上一篇 http://yixun.yxsss.com/yw3104.html function uncode($str,$key){ $ma ...

  9. html5 websocket + node.js 实现网页聊天室

    1 client:    socket.io server:   node.js +  express  + socket.io 一个简单的聊天室  demo,没有注册,内置了一些测试用户 2 cli ...

随机推荐

  1. Swift3.0相对于2.3语法的一些变化

    前言 : Swift3.0的Swift的第3个主要版本,目标是安全,快速和有表现力,也是第一个有开源社区参与开发的Swift版本.由于语法和API改动比较多,Xcode 8.0 Beta提供了migr ...

  2. 工作vs.学�

    近一两年来,我先后对[工作与学习]的复杂过程有过多次的头脑风暴,而且感觉在这方面略有所成(看这里和这里):当然既然仅仅是头脑风暴,所谓的所成也仅仅是一些粗糙的想法,一些没有实证过的如果,算是积累而已, ...

  3. 压力单位MPa、Psi和bar之间换算公式

    压力单位MPa.Psi和bar之间换算公式 1bar=10^5PaPsi为英制压力单位.“磅力每平方英寸(1bf/in2)为1psi=6894.76 pa: 1bar等于10的5次方=10^5 pa ...

  4. stl string

    10.2.1 STL的string 1String概念 ²  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都 ...

  5. 哈夫曼(Huffman)编码

    哈夫曼编码(Huffman Coding)是一种非常经典的编码方式,属于可变字长编码(VLC)的一种,通过构造带权路径长度最小的最优二叉树以达到数据压缩的目的.哈弗曼编码实现起来也非常简单,在实际的笔 ...

  6. __attribute__机制介绍

    转载:http://blog.csdn.net/ithomer/article/details/6566739 1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__att ...

  7. 琐碎-关于hadoop2.X那些端口

    此文转载http://www.aboutyun.com/thread-7513-1-1.html Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访 ...

  8. 使用文档注释(javadoc)

    相信作为Java程序猿,几乎每个人都使用过javac,Java这样的命令吧.想想我们平时使用的Java帮助文档(API),感觉挺好用的,其实它就是使用Java中的命令javadoc做成的.下面简单介绍 ...

  9. poj1068解题报告(模拟类)

    POJ 1068,题目链接http://poj.org/problem?id=1068 题意: 对于给出给出的原括号串S,对应两种数字密码串P.W: S         (((()()()))) P- ...

  10. PHP读书笔记(6)- 数组

    数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西.PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型. 定义数组 ...