Javascript Nodejs-套接字连接webapp存在问题
我目前在创建webapp时遇到问题。我们正在创建的所有页面都可以通过一个函数查看,该函数获取post数据并将其显示在页面上。我遇到的问题是,加载内容时,相应的JS for sockets不会执行 我相信这是因为我们使用:Javascript Nodejs-套接字连接webapp存在问题,javascript,node.js,express,socket.io,Javascript,Node.js,Express,Socket.io,我目前在创建webapp时遇到问题。我们正在创建的所有页面都可以通过一个函数查看,该函数获取post数据并将其显示在页面上。我遇到的问题是,加载内容时,相应的JS for sockets不会执行 我相信这是因为我们使用: socket.on("connect") connect事件只会触发一次,但我不确定如何修复此问题 下面是我目前使用的JS的一个例子 function runJs(){ var url = document.location.pathname.toLowerCase(
socket.on("connect")
connect事件只会触发一次,但我不确定如何修复此问题
下面是我目前使用的JS的一个例子
function runJs(){
var url = document.location.pathname.toLowerCase();
if(url == '/account/create'){
var socket = io();
//once the socket connects, make calls
socket.on("connect", function(){=
socket.on("accountCreated", function(data){
if(typeof data.data.error !== "undefined"){
jQuery("#error").text(data.data.error);
}
else{
//account creation was successful and we're logged in.
//redirect to the home page
window.location.href = "/";
}
});
});
}
当执行另一个函数时(不在这里发布,因为这并不重要),它会更新HTML页面并运行上面看到的runJs()函数。我已经通过console.log确认函数确实被调用,但是socket.on中的代码不会执行,除非重新加载页面
有人知道我如何解决这个问题吗?socket.on侦听事件,socket.emit发出事件。您能否显示服务器端代码以查看事件是否得到处理?您是否在服务器端发出
accountCreated
。除此之外,这里不需要使用socket.on(“connect”、\uuu)
,您可以直接使用socket.on(“accountCreated”、\uuu)
。但是为什么不在io()
@HimaniAgrawal中传递url呢?服务器端的代码并不重要,因为它可以正确执行。问题出在前端的插座上,但我不知道该换什么。此代码示例也应该有一个emit,但问题仍然存在。@Nivesh-io()不要求传递URL才能正常工作。至于需要连接,这在我复制的代码中是正确的。它应该有一个emit,它需要一个套接字存在。