当前位置:Gxlcms > JavaScript > nodejs 使用nodejs-websocket模块实现点对点实时通讯

nodejs 使用nodejs-websocket模块实现点对点实时通讯

时间:2021-07-01 10:21:17 帮助过:79人阅读

1、首先安装好nodejs-websocket

npm install nodejs-websocket --save -g

2、编写服务端

  1. var ws = require("nodejs-websocket")
  2. var AllUserData = new Array()
  3. // Scream server example: "hi" -> "HI!!!"
  4. var server = ws.createServer(function (conn) {
  5. console.log("New connection")
  6. conn.on("text", function (str) {
  7. console.log("Received "+str)
  8. AllUserData.push({
  9. 'id':str,
  10. 'ws':conn
  11. })
  12. conn.sendText(str.toUpperCase()+"!!!")
  13. })
  14. conn.on("close", function (code, reason) {
  15. console.log("Connection closed")
  16. // 当用户退出的时候捕捉到退出的用户
  17. for (var i=0 in AllUserData) {
  18. if (AllUserData[i].ws == conn) {
  19. console.log(AllUserData[i])
  20. }
  21. }
  22. })
  23. }).listen(8001)

3、简易客户端

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>django-websocket</title>
  5. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  6. <script type="text/javascript">//<![CDATA[
  7. $(function () {
  8. $('#connect_websocket').click(function () {
  9. if (window.s) {
  10. window.s.close()
  11. }
  12. /*创建socket连接*/
  13. var socket = new WebSocket("ws://127.0.0.1:8001");
  14. socket.onopen = function () {
  15. console.log('WebSocket open');//成功连接上Websocket
  16. };
  17. socket.onmessage = function (e) {
  18. console.log('message: ' + e.data);//打印出服务端返回过来的数据
  19. $('#messagecontainer').prepend('<p>' + e.data + '</p>');
  20. };
  21. // Call onopen directly if socket is already open
  22. if (socket.readyState == WebSocket.OPEN) socket.onopen();
  23. window.s = socket;
  24. });
  25. $('#send_message').click(function () {
  26. //如果未连接到websocket
  27. if (!window.s) {
  28. alert("websocket未连接.");
  29. } else {
  30. window.s.send($('#message').val());//通过websocket发送数据
  31. }
  32. });
  33. $('#close_websocket').click(function () {
  34. if (window.s) {
  35. window.s.close();//关闭websocket
  36. console.log('websocket已关闭');
  37. }
  38. });
  39. });
  40. //]]></script>
  41. </head>
  42. <body>
  43. <br>
  44. <input type="text" id="message" value="user1"/>
  45. <button type="button" id="connect_websocket">连接 websocket</button>
  46. <button type="button" id="send_message">发送 message</button>
  47. <button type="button" id="close_websocket">关闭 websocket</button>
  48. <h1>Received Messages</h1>
  49. <div id="messagecontainer">
  50. </div>
  51. </body>
  52. </html>

总结

以上所述是小编给大家介绍的nodejs 使用nodejs-websocket模块实现点对点实时通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

人气教程排行