程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒?

开发过程中遇到大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒的问题如何解决?下面主要结合日常开发的经验,给出你关于大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒的解决方法建议,希望对你解决大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒有所启发或帮助;

我的游戏聊天没有错误,但只有 3 秒,然后它不显示来自服务器的数据并且发送消息不起作用。我将 console.log ('action') 放在 useEffect 钩子中,发现在将 'action' 打印到控制台时聊天有效。

node.Js:

let messages = ['test']
let nicknames = ['admin']

wss.on('connection',function connection(ws) {
    ws.send(JsON.Stringify({nicknames: nicknames,messages: messages}))
    ws.on('message',function incoming(message,Name) {
        messages.push(messagE)
        nicknames.push(Name)
        ws.send(JsON.Stringify({nicknames: nicknames,messages: messages}))
    })
})

server.Listen(8888,() => console.log("web socket server started"))

反应:

文本状态:

const [message,setmessage] = useState('');
const [messages,setmessages] = useState([])
const [messagesLoaded,setmessagesLoaded] = useState(false)
const webSocket = new WebSocket('ws://localhost:8888')

发送消息:

    function handleChange(E) {
        setmessage(e.target.value)
    }

    function sendmessage(E) {
        e.preventDefault()
        webSocket.onopen = () => webSocket.send(messagE)
        setmessage("")
    }

从服务器获取消息:

    useEffect(() => {
        webSocket.onopen = () => {
            webSocket.onmessage = function (event) {
                setmessages(JsON.parse(event.data))
                setmessagesLoaded(true)
                console.log(messages.messages)
            }
        }
    })
       //render messges:

       if (messagesLoaded) {
            return (
                messages.messages.map(item => {
                    return (
                        <div classname="messageCard" key={Math.random()}>
                            <p>{item}</p>
                        </div>
                    )
                })
            )
        }

完整代码:

import React,{ useState,useEffect } from 'react'

function Chat() {
    const [message,setmessage] = useState('');
    const [messages,setmessages] = useState([])
    const [messagesLoaded,setmessagesLoaded] = useState(false)
    const webSocket = new WebSocket('ws://localhost:8888')

    function handleChange(E) {
        setmessage(e.target.value)
    }

    function sendmessage(E) {
        e.preventDefault()
        webSocket.onopen = () => webSocket.send(messagE)
        setmessage("")
    }

    useEffect(() => {
        webSocket.onopen = () => {
            webSocket.onmessage = function (event) {
                setmessages(JsON.parse(event.data))
                setmessagesLoaded(true)
                console.log(messages.messages)
            }
        }
    })

    return (
        <div>
            <div>
                <ChaTinterface />
            </div>
            <form onsubmit={sendmessagE}>
                <input value={messagE} onChange={handleChangE} placeholder="Say something..." />
                <button>Send</button>
            </form>
        </div>
    )
    function ChaTinterface() {
        if (messagesLoaded) {
            return (
                messages.messages.map(item => {
                    return (
                        <div classname="messageCard" key={Math.random()}>
                            <p>{item}</p>
                        </div>
                    )
                })
            )
        }

        else {
            return (
                <p classname="center">Загрузка сообщений...</p>
            )
        }
    }
}

export default Chat

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒全部内容,希望文章能够帮你解决大家好,我部署了 MERN 项目。我的聊天没有错误,但只有 3 秒所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。