To be or not to be.That is a question!

---源于莎士比亚的《哈姆雷特》

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

node io.sockt 聊天应用

index.html

复制代码
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <div id="output"></div>
  <script src="./socket.io/socket.io.js"></script>
<script>
  var socket=io.connect('http://localhost:8080');
  socket.on('connect',function(){
    socket.emit('addme',prompt("Who are you?"));
  })
  socket.on('chat',function(username,data){
    var p=document.createElement("p");
    p.innerHTML=username+ " : "+data;
    document.getElementById("output").appendChild(p);
  })
  window.addEventListener('load',function(){
    document.getElementById('sendtext').addEventListener('click',function(){
      var text=document.getElementById("data").value;
      socket.emit('sendchat',text);
    },false);
  },false);
</script>
<div id="output"></div>
<div id="send"><input type="text" id="data" size="100"><br><input type="button" id="sendtext" value="Send Text"></div>
</body>
</html>
复制代码

app.js

复制代码
var app=require('http').createServer(handler),
    io=require('socket.io').listen(app),
    fs=require('fs');
    app.listen(8080);
    function handler(req,res){
        fs.readFile(__dirname+'/index.html',function(err,data){
            if (err) {
                res.writeHead(500);
                return res.end('Error loading chat.html');
            }
            res.writeHead(200);
            res.end(data);
        });
    }
    io.sockets.on("connection",function(socket){
        socket.on('addme',function(username){
            socket.username=username;
            socket.emit('chat','SERVER','You have connected');
            socket.broadcast.emit('chat','SERVER',username+' is on deck');
        })
        socket.on('sendchat',function(data){
            io.sockets.emit('chat',socket.username,data);
        })
        socket.on('disconnect',function(){
            io.sockets.emit('chat','SERVER',socket.username+' has left the building');
        })
    })
复制代码

 

posted on   Ijavascript  阅读(306)  评论(0编辑  收藏  举报

编辑推荐:
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
阅读排行:
· 后端思维之高并发处理方案
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 上周热点回顾(3.24-3.30)
点击右上角即可分享
微信分享提示