node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入
npminstallws
1.node.js中ws模块创建服务端
//加载node上websocket模块ws; varws=require("ws"); //启动基于websocket的服务器,监听我们的客户端接入进来。 varserver=newws.Server({ host:"127.0.0.1", port:6080, }); //监听接入进来的客户端事件 functionwebsocket_add_listener(client_sock){ //close事件 client_sock.on("close",function(){ console.log("clientclose"); }); //error事件 client_sock.on("error",function(err){ console.log("clienterror",err); }); //end //message事件,data已经是根据websocket协议解码开来的原始数据; //websocket底层有数据包的封包协议,所以,绝对不会出现粘包的情况。 //每解一个数据包,就会触发一个message事件; //不会出现粘包的情况,send一次,就会把send的数据独立封包。 //如果我们是直接基于TCP,我们要自己实现类似于websocket封包协议就可以完全达到一样的效果; client_sock.on("message",function(data){ console.log(data); client_sock.send("Thankyou!"); }); //end } //connection事件,有客户端接入进来; functionon_server_client_comming(client_sock){ console.log("clientcomming"); websocket_add_listener(client_sock); } server.on("connection",on_server_client_comming); //error事件,表示的我们监听错误; functionon_server_listen_error(err){ } server.on("error",on_server_listen_error); //headers事件,回给客户端的字符。 functionon_server_headers(data){ //console.log(data); } server.on("headers",on_server_headers);
2.node.js中ws模块创建客户端
varws=require("ws"); //urlws://127.0.0.1:6080 //创建了一个客户端的socket,然后让这个客户端去连接服务器的socket varsock=newws("ws://127.0.0.1:6080"); sock.on("open",function(){ console.log("connectsuccess!!!!"); sock.send("HelloWorld1"); sock.send("HelloWorld2"); sock.send("HelloWorld3"); sock.send("HelloWorld4"); sock.send(Buffer.alloc(10)); }); sock.on("error",function(err){ console.log("error:",err); }); sock.on("close",function(){ console.log("close"); }); sock.on("message",function(data){ console.log(data); });
3.网页客户端创建(使用WebApi--->WebSocket)
skynetwebsocketexample
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接