码迷,mamicode.com
首页 > Web开发 > 详细

node实现websocket聊天室

时间:2018-02-05 17:12:19      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:one   soc   set   host   style   tle   ==   ebs   link   

const express = require(‘express‘);
const app = express();
const ws = require(‘ws‘).Server;
const wss = new ws({port: 3001});
var sockets = [];

wss.on(‘connection‘, function(ws) {
    ws.send(‘连接成功‘);
    ws.send(‘欢迎进入聊天室‘);
    sockets.push(ws);

    ws.on(‘message‘, function(data) {
        ws.send(data);

        try {
            sockets.forEach(function (socket) {
                 if (ws != socket) {
                    socket.send(data);
                 }
            });
        } catch (err) {
            console.log(err);
        }
    });

    ws.on(‘error‘, function(e) {
        console.log(e);
    });
    ws.on(‘close‘, function(e) {
        console.log(e);
    });
});

app.use(express.static(__dirname)).listen(3000, ‘localhost‘);
app.get(‘/‘, (req, res) => {
    res.sendFile(__dirname+‘/websocket.html‘);
});

  

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>websocket</title>
    <link rel="stylesheet" href="test.css">
</head>
<body>
<input id="msg" type="text"/>
<button id="send" onclick="sendMsg()">发送</button>
<script>
    var ws = new WebSocket(‘ws://localhost:3001‘);
    ws.onopen = function(e) {
        console.log(e);
    };

    ws.onmessage = function(data) {
        console.log(data.data);
        showMsg(data.data);
    };

    ws.onerror = function(e) {
        console.log(e);
    };
    ws.onclose = function(e) {
        console.log(e);
    };


    function sendMsg() {
        var msg = document.getElementById(‘msg‘).value;
        var now = (new Date()).toLocaleTimeString();
        ws.send(now+‘@‘+msg);
    }

    function showMsg(data) {
        var msg = document.createElement(‘div‘);
        msg.innerHTML = data;
        document.body.appendChild(msg);
    }

    document.onkeyup = function(event) {
        event = event || window.event;
        if (event.keyCode == 13) {
            sendMsg();
        }
    };
</script>
</body>
</html>

  

node实现websocket聊天室

标签:one   soc   set   host   style   tle   ==   ebs   link   

原文地址:https://www.cnblogs.com/huangtonghui/p/8418080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!