Express、Socket.io开发一个简易的聊天系统
来源:互联网 发布:java unix时间戳 编辑:程序博客网 时间:2024/05/14 03:18
Server端代码:
var app = require('express')();var server = require('http').Server(app);var io = require('socket.io')(server);app.set('view engine', 'ejs');app.set('views',__dirname+'/');app.set('view options', {layout:false});// getapp.route('/').get(function( req, res, next ) { res.render('index',{ title: 'Hey', message: 'Hello there!'});});io.on('connection', function (socket) { //服务器默认消息 socket.emit('server', { say: '你好,欢迎光临!' }); // 加入聊天 socket.on('join', function( name ) { socket.nickname = name; socket.broadcast.emit('announcement', { say: name + '加入进来了!'}) }); // 客户端发送消息,服务器端接收后,广播到所有聊天窗口 socket.on('server', function (name,data) { socket.broadcast.emit('client', {name:socket.nickname, say:data.say }); });});server.listen(3001);
Client端:
<!DOCTYPE html><meta charset="utf-8" /><title>Socket Test1</title><script src="https://cdn.bootcss.com/socket.io/2.0.3/socket.io.js"></script><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><style> .chat-list-block { width:50%; border:1px solid #dedede; margin:50px auto 0; padding:10px; height:360px; overflow-y:auto; } .chat-list-block .item-block { width:100%; height:30px; display:flex; justify-content: flex-start;; align-items: center; font-size:14px; border-bottom:1px solid #dedede; } .green {color:green; font-weight:bold;} .red {color:red; font-weight:bold;} .form-block { width:50%; border:1px solid #dedede; margin:50px auto 0; height:40px; overflow:hidden; } input[type="text"] { width:80%; float:left; height:40px; border:none; outline: none; font-size:16px; text-indent:10px; } input[type="button"] { width:20%; float:left; height:40px; border:none; background-color : #f60; color:#fff; font-size:18px; outline: none; cursor:pointer; }</style><div id="chatList" class="chat-list-block"></div><div class="form-block"> <input id="into" type="text"> <input type="button" value="Send"></div><script> var socket = io(); socket.on('connect',function(){ console.log("socketio open!"); socket.emit('join', prompt('what is your name')); }); socket.on('close',function(){ console.log("socketio close!"); }); // 服务器返回消息 socket.on('server', function (data) { $('#chatList').append('<div class="item-block"><span class="red">Server</span>:'+ data.say+'</div>'); }); // 客户端接收消息 socket.on('client', function (data) { $('#chatList').append('<div class="item-block"><span class="red">'+ data.name+'</span>:'+ data.say+'</div>'); }); // 通知大家新人进来了 socket.on('announcement', function (data) { $('#chatList').append('<div class="item-block"><span class="red">Server</span>:'+ data.say+'</div>'); }); // 发送消息 $('[type="button"]').click(function() { var into = $('#into').val(); if(into.trim() == '') { alert('发送消息不能为空'); return; } socket.emit('server',1, {say:into}); $('#chatList').append('<div class="item-block"><span class="green">我</span>:'+ into +'</div>'); $('#into').val(''); })</script></html>
实现效果:
阅读全文
0 0
- Express、Socket.io开发一个简易的聊天系统
- 一个简易的聊天程序(Socket)
- 使用socket.io+express实现网页聊天的实践
- 使用Express + Socket.io + MongoDB实现简单的聊天
- 使用express + socket.io实现多房间聊天应用
- 基于udp通信协议开发的简易聊天系统1.0
- 利用express+socket.io实现简易版聊天室
- Socket.IO和express
- socket.io (nodejs+express)
- Express+socket.io
- 聊天系统的开发
- socket.io+angular.js+express.js做个聊天应用(一)
- socket.io+angular.js+express.js做个聊天应用(二)
- socket.io+angular.js+express.js做个聊天应用(三)
- socket.io+angular.js+express.js做个聊天应用(四)
- 安卓/平台QtQuick+socket.io+C++搭建聊天系统
- 使用node.js与socket.io搭建即时聊天系统
- 14级团队学习成果汇报 -- 利用express+socket.io搭建简易版聊天室
- 2017中国HPC TOP100:AI成最大赢家,浪潮和老黄都笑了
- 例题7-10 编辑书稿(Editing a Book, UVa 11212)
- 安卓自定义组合式View 加减
- ofbiz实战3——创建booking项目首页
- 15. 3Sum
- Express、Socket.io开发一个简易的聊天系统
- Bootstrap中的下拉菜单组件
- GitHub上README.md教程
- 用MATLAB实现FR共轭梯度法求解实例
- linux压缩命令总结
- 设计模式之模板方法
- 递归 与 尾递归 详解
- 提高代码阅读能力的7种方法
- tensorflow中模型的保存和恢复