我一直在尝试这样做,但是您可以将其socket.io服务器连接到另一个网站吗?我一直在尝试从使用socket.io进行实时更新的网站上抓取数据。如果可能的话,将非常方便。
我正在尝试从网站https://www.ethercrash.io/中获取实时更新-但是,我尝试了以下代码,除了连接之外没有任何其他更新;
var io = require('socket.io-client');
var socket = io('https://www.ethercrash.io')
socket.on('connect', function(){
console.log(true);
});
socket.on('msg', function(data) {
console.log('chat message');
});
socket.on('disconnect', function(){
console.log(false);
});
我做错什么了吗?或者这是不可能的吗?
我在所有的node.js / express / socket.io项目中都使用以下内容。希望它可以帮助您。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
<script>
$(document).ready(function() {
// NOTE, I AM FORCING WEBSOCKET TRANSPORT HERE. AND AM NOT ALLOWING
// SOCKET.IO TO FALL BACK TO LONG POLLING FALLBACK,
// SO YOU CAN REMOVE THE TRANSPORTS AND GO WITH SOCKET.IO DEFAULTS
// PORT I'M USING IS 3000 -- SO THE PORT CAN BE IMPORTANT, DEPENDING ON YOUR USASGE
var socket = io.connect("https://MY-SERVER-NAME-HERE.eastus.cloudapp.azure.com:3000", {
secure: true,
transports: ["websocket"],
path: "/socket/socket.io"
});
// EVERY TIME THE NODE.JS SERVER SENDS US 'MESSAGE' WE'LL DISPLAY THAT UPDATED NUMBER IN A DIV
socket.on("message", function(msg) {
document.getElementById("message").innerHTML = msg;
});
});
</script>
</head>
<body style="width: 100%;">
<div id="message" style="text-align: center; width: 100%; font-size: 2em;"></div>
</body>
</html>
您还依赖于该“其他站点”(运行套接字服务器)向所有已连接的客户端或您的连接发出信号。除非发生任何一种情况,否则您将只有一个连接,并且不会发出任何消息(将被读取/解析)。
与套接字一起使用真的很有趣,并且一旦掌握了它,它就充满了潜力!