JavaScrip 我的第一个websocket

最近在研究js,感觉学习c#太幸福了。js代码满天飞,自由性太高。新手看着真是费劲。

我从网上download的一篇关于websocket源码来学习。原文地址:js websockt。但是他的代码有局限性,就是只能连接两个用户,在添加用户就会无响应。而且不是基于多人开发的。所以我就跌跌撞撞看看改改。代码如下:

var ws = require("nodejs-websocket");
console.log("开始建立连接...");


var dic=new Array();
var server = ws.createServer(function (conn) {
    conn.on('text', function (str) 
    {
        var firstChar=str[0];
        if (firstChar == "|") 
//这里我设置一个规则 发送第一个字符是|即为用户名 
//否则即是发送的消息 其实是不准确的 但是娱乐自用还是将就可以的 如果有其他好的想法 请留言哈
        {
            str.slice(1, str.length - 2);
            if (dic[str] == null) 
            {
                dic[str] = conn;

                for (var key in dic) 
                {
                    if (str == key) conn.sendText("连接服务器成功");
                    else dic[key].sendText(str + "在线啦,你们可以聊天啦");
                }
            }
            else
            {
                for (var key in dic) 
                {
                    if (str == key) continue;
                    dic[key].sendText(str + "在线啦,你们可以聊天啦");
                }
            }
        }
        else
        {
            for (var key in dic) 
            {
                dic[key].sendText(str);
            }   
        } 
    })

    conn.on("close", function (code, reason) {
        console.log("关闭连接");
        for (var key in dic) 
        {
            if(dic[key]==conn)
               delete dic[key];
        }   
})
    conn.on("error", function (code, reason) {
        console.log("异常关闭");
    });
}).listen(8082);
console.log("websocket连接完毕")

Html页面更改如下:增加一个ws.close()。且在给服务端发送关闭连接消息后调用。

去上面链接地址下载源码,让后将server.js内容替换成我的代码。修改client.html部分内容即可。这样就可以实现多人实时聊天了。由于是新接触js,对于html css以及开发流程不太熟悉。我不知道项目中的依赖包nodejs-websocket是怎么下载下来的,如果有知道的请留言,感谢。如有不正确 ,欢迎指正。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值