最近在研究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是怎么下载下来的,如果有知道的请留言,感谢。如有不正确 ,欢迎指正。