Javascript 如何通过按键连接到节点服务器?
我可以通过按下按钮连接到带有socket.io的nodejs服务器吗?例如,我得到了我的页面Javascript 如何通过按键连接到节点服务器?,javascript,node.js,xmlhttprequest,Javascript,Node.js,Xmlhttprequest,我可以通过按下按钮连接到带有socket.io的nodejs服务器吗?例如,我得到了我的页面file:///home...site/index.html和在我的本地计算机上运行的服务器,例如localhost:8080。调用函数时,是否可以使用xmlhttprequest或其他方式从文件连接到服务器?怎样有链接/教程吗?我在GitHub上有一个非常简单的socket.io示例: 更新本例中的index.html页面,如下所示: <!doctype html> <html>
file:///home...site/index.html
和在我的本地计算机上运行的服务器,例如localhost:8080
。调用函数时,是否可以使用xmlhttprequest或其他方式从文件连接到服务器?怎样有链接/教程吗?我在GitHub上有一个非常简单的socket.io示例:
更新本例中的index.html页面,如下所示:
<!doctype html>
<html>
<head>
<script src='/socket.io/socket.io.js'></script>
<script>
var socket;
function makeConnection() {
socket = io();
socket.on('welcome', function(data) {
addMessage(data.message);
// Respond with a message including this clients' id sent from the server
socket.emit('i am client', {data: 'foo!', id: data.id});
});
socket.on('polo', function(data) {
addMessage(data.message);
});
alert('connected.');
}
function addMessage(message) {
var text = document.createTextNode(message),
el = document.createElement('li'),
messages = document.getElementById('messages');
el.appendChild(text);
messages.appendChild(el);
}
function marco() {
socket.emit('marco');
}
</script>
</head>
<body>
<button onclick="makeConnection()">Connect</button>
<button onclick="marco()">Marco!</button>
<ul id='messages'></ul>
</body>
</html>
无功插座;
函数makeConnection(){
socket=io();
socket.on('welcome',函数(数据){
addMessage(data.message);
//使用从服务器发送的包含此客户端id的消息进行响应
emit('i am client',{data:'foo!',id:data.id});
});
socket.on('polo',函数(数据){
addMessage(data.message);
});
警报(“已连接”);
}
函数addMessage(消息){
var text=document.createTextNode(消息),
el=document.createElement('li'),
messages=document.getElementById('messages');
el.附件(文本);
附加子对象(el);
}
函数marco(){
socket.emit('marco');
}
连接
马可!
这将在用户单击“连接”时建立socket.io连接。然后你可以点击马可!发送消息并接收Polo!答复
谢谢您的回复,但这不是我想要的。当你到达页面时,你的站点会立即将你连接到节点服务器,我想在单击按钮时连接到它。这很容易实现。我更新了我的答案。@Edvin好吧,现在你刚刚添加了另一个emit,但你仍然在
var socket=io()
连接。我真正的问题是,我想从另一个页面连接到服务器,该页面在地址栏中没有URL,而是通过javascript事件的其他方式到达服务器,例如按下按钮。如果我们在makeConnection()函数中移动该行,但仍然全局声明它,该怎么办?这基本上就是你想要做的,对吗?