This article mainly introduces the method of nodejs to implement the WebSocket chat function based on the WS module. It analyzes the specific operation skills of nodejs using the WS module for WebSocket communication to implement the chat function in the form of examples. Friends in need can refer to the following
The example of this article describes how nodejs implements the WebSocket chat function based on the WS module. Share it with everyone for your reference, the details are as follows:
There are many WebSocket modules, I chose a simpler module to implement.
Tool: Sublime
Technology: Node.js Reference module ws
The final effect is as follows
Originally planned to make Network drawing board, because I forgot about work, here I simply implemented the group chat function
There is nothing to introduce, there are too many code cases on the Internet, (the main problem encountered by novices may be the problem of node import module )
Introduce the installation module:
Find the installation node directory, enter the npm directory, run cmd and enter the
npm install --save ws
source file, it is best to place it in the npm directory. You can quote it (I am also a newbie, please forgive me)
Then execute the node source file.js and you can access it;
Source code: Just save it as a js file
//https://github.com/websockets/ws/blob/master/doc/ws.md#new-wsserveroptions-callback var WebSocketServer = require('ws').Server, wss = new WebSocketServer({ port: 3000, //监听接口 verifyClient: socketVerify //可选,验证连接函数 }); function socketVerify(info) { console.log(info.origin); console.log(info.req.t); console.log(info.secure); // console.log(info.origin); // var origin = info.origin.match(/^(:?.+\:\/\/)([^\/]+)/); //if (origin.length >= 3 && origin[2] == "blog.luojia.me") { // return true; //如果是来自blog.luojia.me的连接,就接受 //} // console.log("连接",origin[2]); return true; //否则拒绝 //传入的info参数会包括这个连接的很多信息,你可以在此处使用console.log(info)来查看和选择如何验证连接 } //广播 wss.broadcast = function broadcast(s,ws) { // console.log(ws); // debugger; wss.clients.forEach(function each(client) { // if (typeof client.user != "undefined") { if(s == 1){ client.send(ws.name + ":" + ws.msg); } if(s == 0){ client.send(ws + "退出聊天室"); } // } }); }; // 初始化 wss.on('connection', function(ws) { // console.log(ws.clients.session); // console.log("在线人数", wss.clients.length); ws.send('你是第' + wss.clients.length + '位'); // 发送消息 ws.on('message', function(jsonStr,flags) { var obj = eval('(' + jsonStr + ')'); // console.log(obj); this.user = obj; if (typeof this.user.msg != "undefined") { wss.broadcast(1,obj); } }); // 退出聊天 ws.on('close', function(close) { try{ wss.broadcast(0,this.user.name); }catch(e){ console.log('刷新页面了'); } }); });
html Front-end source code:
There is not much verification done in the chat, and the name can be changed at will.
The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.
Related articles:
About how to use ejsExcel template
NavigatorIOS component in React Native (detailed tutorial description)
Detailed description of abstraction between components in React
The above is the detailed content of How to implement chat function using nodejs?. For more information, please follow other related articles on the PHP Chinese website!