首頁 > web前端 > js教程 > 使用socket.io如何實現聊天室

使用socket.io如何實現聊天室

亚连
發布: 2018-06-14 11:27:04
原創
2575 人瀏覽過

這篇文章主要介紹了使用socket.io實現簡單聊天室案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了socket.io實現簡單聊天室的具體程式碼,供大家參考,具體內容如下

1、客戶端【index.html】代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

<body>

  <h3>socket简例</h3>

  <hr>

  <p id = &#39;app&#39;>

    <p>

      <p>

        <ul>

          <li v-for = &#39;item in msgs&#39;>

            {{item.name}}说:{{item.content}}

          </li>

        </ul>

      </p>

      <p>

        <p><input type="text" v-model = &#39;msg&#39;><button @click = &#39;m_send()&#39;>发送</button></p>

      </p>

    </p>

  </p>

 

  <script type="text/javascript" src = &#39;https://cdn.bootcss.com/vue/2.5.9/vue.min.js&#39;></script>

  <script type="text/javascript" src = &#39;https://cdn.bootcss.com/socket.io/1.7.3/socket.io.min.js&#39;></script>

  <script type="text/javascript">

 

    var _vm = new Vue({

      data : {

        name : &#39;用户&#39;,

        msg : &#39;&#39;,

        msgs : [],

      },

      methods : {

        m_send : function() {

 

          // 向客户端发送消息

          socket_client.emit(&#39;say_client&#39;, {

            name : this.name,

            content : this.msg

          }) ;

          this.msg = &#39;&#39; ;

        }

      }

    }).$mount(&#39;#app&#39;) ;

 

 

    // socket服务器

    var socket_client = io.connect(&#39;http://127.0.0.1:3000&#39;) ;

 

    /**

     * 监听服务端发来的消息

     *

     * 1、“say_server”是客户端发出信息时的key值

     * 2、“res”是客户端传来的value值

     */

    socket_client.on(&#39;say_server&#39; ,function(res){

 

      console.log(&#39;服务端发来的消息为:&#39;, res) ;

 

      _vm.msgs.push(res);

    });

 

  </script>

</body>

登入後複製

2、服務端【app.js】代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

const http = require(&#39;http&#39;) ;

const server = http.createServer() ;

 

// web服务器

const express = require(&#39;express&#39;) ;

const app = express();

 

app.use(express.static(__dirname + &#39;/public&#39;));

 

app.listen(8888, function () {

  console.log(&#39;web服务器成功启动了,IP:127.0.0.1,端口号:8888&#39;) ;

});

 

 

// socket服务器

 

const socketio = require(&#39;socket.io&#39;) ;

const socket_server = socketio(server) ;

 

// 建立和客户端的socket连接

socket_server.on(&#39;connection&#39;, function(client) {

 

// console.log(client) ;          // 查看连接进来的客户端对象内容 

// console.log(Object.keys(client)) ;    // 查看连接进来的客户端对象的关键key值

 

  /**

   * 监听客户端发来的消息

   *

   * 1、“say_client”是客户端发出信息时的key值

   * 2、“res”是客户端传来的value值

   */

  client.on(&#39;say_client&#39;, function(res) {

    console.log(&#39;客户端发来的消息为:&#39;, res) ;

 

    // 向客户端发送消息

    socket_server.emit(&#39;say_server&#39;, res) ;

  }) ;

}) ;

 

 

server.listen(3000, function() {

  console.log(&#39;socket服务器成功启动了,IP:127.0.0.1,端口号:3000&#39;) ; 

}) ;

登入後複製

上面是我整理給大家的,希望未來會對大家有幫助。

相關文章:

webpack該如何處理樣式?

在js中如何產生word圖片

在jQuery有關於函式庫的引用方法有哪些

#

以上是使用socket.io如何實現聊天室的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板