首页 > 代码库 > HTML5之广播聊天室
HTML5之广播聊天室
- 服务器端广播文本
- 所有客户端都可以收到
--- 客户端
- 定义文本框
- 定义发送事件
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, "<"); message = message.replace(/>/g, ">"); 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之广播聊天室
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。