Node.js 带有NodeJS的简单WebSocket应用程序

Node.js 带有NodeJS的简单WebSocket应用程序,node.js,websocket,socket.io,Node.js,Websocket,Socket.io,我将制作一个简单的WebSocket应用程序,等待客户端连接。客户端将是Android用户,而应用程序本身就是两个人的简单聊天。因此,对于Android应用程序,我需要知道WebSocket地址(从ws://或wss://开始)。我已经有了一些网站,在那里我安装了nodejs。但几天后,我完全明白了到底发生了什么,以及如何让某些东西起作用。我甚至很高兴看到nodejs捕捉到任何WebSocket消息,就这样 我读了一些关于nodejs和socket.io的手册,我同样不知道从哪里可以得到这个ws

我将制作一个简单的WebSocket应用程序,等待客户端连接。客户端将是Android用户,而应用程序本身就是两个人的简单聊天。因此,对于Android应用程序,我需要知道WebSocket地址(从ws://wss://开始)。我已经有了一些网站,在那里我安装了nodejs。但几天后,我完全明白了到底发生了什么,以及如何让某些东西起作用。我甚至很高兴看到nodejs捕捉到任何WebSocket消息,就这样

我读了一些关于nodejs和socket.io的手册,我同样不知道从哪里可以得到这个ws://地址,并使它以某种方式工作

例如,从,我们有:

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

app.get('/', function(req, res){
  res.sendfile('index.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

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

这已经是一个简单的websocket应用程序了吗?在这种情况下,我想要的ws://地址在哪里?如果您正在使用服务器上的
socket.io
库,也许我应该在服务器上上传这组代码并将查询发送到ws://mydomain.com:3000

,然后,还必须在客户端中使用兼容的
socket.io
库,因为它是webSocket之上的协议,因此两端必须使用相同的语言

WebSocket(本例中为socket.io)是为共享您的Web服务器而构建的。因此,对服务器的任何webSocket连接请求都只发送到与Web服务器相同的主机和端口

每个webSocket请求都以一个http请求开始(因此由web服务器处理),该http请求作为请求升级webSocket协议的标头。当您的web服务器看到该自定义头时,它会将控制权传递给socket.io库,然后该库会响应对webSocket协议的升级是正常的,并且最初作为http请求使用的套接字现在成为应用程序使用webSocket/socket.io的套接字

socket.io库自动处理插入web服务器的操作,以便查看这些协议升级请求

在网页中,要连接到此的socket.io客户端代码如下所示:

<script src="/socket.io/socket.io.js"></script>
<script>

var socket = io();  
socket.on('connect', function() {
    // socket.io webSocket connection with your server is now established
});

</script>

var socket=io();
socket.on('connect',function(){
//socket.io webSocket与服务器的连接现已建立
});

socket.io库将自动连接回网页所在的主机。您甚至不需要输入URL。

谢谢。但如果我有Android应用程序,但它不在同一台服务器上(我想是在Placemarket的某个地方),该怎么办呢。我想socket.io不是这个目的的合适选择,但是什么是正确的呢?有一个库可以用于Android socket.io客户端。查看这篇帖子:@JamesMay-如果您愿意,您可能会找到一个与socket.io兼容的Android客户端库。我发现socket.io使WebSocket更易于使用,因此这可能是一个好方法。如何准确地编程到与socket.io兼容的Android库完全取决于您使用的库及其工作方式。socket.io网站目前似乎有问题,但他们在这里讨论了本地android应用程序: