首页 技术 正文
技术 2022年11月14日
0 收藏 445 点赞 2,337 浏览 1970 个字

1.利用socket.io插件制作一个聊天框,原理是输入对话,发送到服务,服务器在返回相应的对话,最后插入页面中,时间对话的功能,这里我是使用的node.js搭建的服务器。

附上源码

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<textarea id="all" cols=40 rows=20></textarea>
<br />
<label>Message:</label>
<input id="message" type="text" name="message" cols=120/>
<input id="chat_btn" type="button" value="chat" onclick="chat_fn()" />
<label>NickName:</label>
<input id="nickname" typee="text" name="nickname" />
<input id="chang_name" type="button" value="nickname" onclick="change_nickname()" />
<!--<script src="../../../../npm/node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>-->
<script src="http://localhost:8888/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8888');
socket.on("notice", function(data){
var msg = document.getElementById('all').value;
document.getElementById('all').innerText = msg + "\n" + data.message;
});
function chat_fn(){
var msg = document.getElementById("message").value;
socket.emit("chat", {message: msg});
};
var change_nickname = function(){
var nickname = document.getElementById("nickname").value;
socket.emit('setNickname',{nickname:nickname});
};
</script>
</body>
</html>服务器代码
/**
* Created by on 2016/7/29.
*/
var app = require('http').createServer(handler)
, io = require('../../../../npm/node_modules/socket.io').listen(app)
, fs = require('fs');
app.listen(8888);function handler (req, res) {
fs.readFile('d://webstrom/yingtou/chart/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
console.log(err);
return res.end('Error loading index4.html');
}
res.writeHead(200);
res.end(data);
});
}io.sockets.on('connection', function (socket) {
socket.on("chat",function(data){
console.log(data);
socket.emit("notice", {message: ":" + data.message});
socket.broadcast.emit("notice", {message: ":" + data.message});
console.log("chat: " + data.message);
});
socket.on("setNickname",function(data){
socket.emit("notice", {message: ":" + data.nickname});
socket.broadcast.emit("notice", {message: ":" + data.nickname});
console.log("name:"+data.nickname)
})
});
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,152
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,621
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,465
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,239
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,874
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,042