Jam*_*May 5 websocket node.js socket.io
我将创建一个简单的WebSocket应用程序,等待客户端连接.客户端将是Android用户,应用程序本身就是两个人的简单聊天.所以对于Android应用程序,我需要知道WebSocket地址(以ws://或wss://开头).我已经有了一些网站,我安装了nodejs.但几天之后,我完全坚持了正在发生的事情以及如何让事情发挥作用.我甚至很高兴看到nodejs捕获任何WebSocket消息,就是这样.
我阅读了一些关于nodejs和socket.io的手册,我再也不知道从哪里获取ws://地址并让它以某种方式工作.
例如,从socket.io聊天手册,我们有:
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');
});
Run Code Online (Sandbox Code Playgroud)
那是否已经是简单的websocket应用程序?在那种情况下,我想要的ws://地址在哪里?也许我应该在我的服务器上上传那堆代码并将查询发送到ws://mydomain.com:3000?
如果您在服务器上使用该socket.io库,那么您也必须socket.io在客户端中使用兼容的库,因为它是 webSocket 之上的协议,因此两端必须使用相同的语言。
webSockets(在本例中是socket.io)是为了共享您的网络服务器而构建的。因此,任何对您服务器的 webSocket 连接请求都会发送到与您的网络服务器相同的主机和端口。
每个 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>
Run Code Online (Sandbox Code Playgroud)
socket.io 库将自动连接回网页所在的同一主机。您甚至不需要输入 URL。
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |