簡體   English   中英

如何配置socket.io監聽客戶端

[英]How to configure socket.io to listen to client side

我是使用套接字的新手,並不完全了解它們的工作原理。

當我加載我的網站時出現此錯誤我只是收到此錯誤“chat.js:4563 GET http://localhost/socket.io/?EIO=3&transport=polling&t=N3Jn3vr 404 (Not Found)”

我錯過了什么? 我假設我必須以某種方式使這兩個端口相互協作?

socket.js 文件:

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);

http.listen(3000, function(){
  console.log('listening on *:3000');
});

io.on('connection', function(socket){
  socket.on('chat.message', function(message) {
     console.log('x: ' +  message)
  })
});

chat.js 文件:

import io from 'socket.io-client';

const socket = io('http://localhost:80');

var app = new Vue({
    el: '#app',
    mounted() {
    },
    data: {
      message: null
    },
    methods: {
        send() {
            socket.emit('chat.message', this.message)
    }
}})

刀片文件:

@extends('dashboard.base')

@section('content')

    <div class="container-fluid">
        <div class="fade-in">
            <div class="row">
                <div class="card mx-auto text-center w-50">
                    <div  class="card-header">
                        Live Chat
                    </div>
                    <div id="app" class="card-body">
                        <input v-model="message" type="text">
                        <span class="btn btn-success" @click="send">Send</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

@endsection

@section('javascript')
    <script src="{{ mix('js/chat.js') }}"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
@endsection

由於 express 和 socket.io 都使用http它們將共享相同的端口。 所以你應該在端口 3000 而不是端口 80 上監聽套接字連接。

您可以在沒有 url 的情況下使用io初始化套接字對象,因為它與您的 Express 應用程序位於同一端口上。 Socket.io 將連接到為頁面提供服務的同一台主機

const socket = io();

此處的入門頁面提供了相同的概述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM