JavaScript
файл server.js
var app = require("express")();
var http = require("http").Server(app);
var io = require("socket.io")(http);
// load html
app.get("/", function (req, res) {
res.sendFile(__dirname + "/a.html");
});
// socket connect
io.on("connection", function (socket) {
// send message
socket.emit("user added message", "Hello!");
// socket disconnect
socket.on("disconnect", function (msg) {
});
});
// web server
var port = process.env.PORT;
http.listen(port, function () {
});
Html
Файл a.html
<html>
<!-- head -->
<head>
<title>My example</title>
</head>
<!-- body -->
<body>
<!-- include socket -->
<script src="http://mygame.dir.by/socket.io/socket.io.js"></script>
<script>
// create socket
var socket = io();
// get message
socket.on("user added message", function (msg) {
alert(msg);
});
</script>
</body>
</html>
Html
файл a.html
<html>
<!-- head -->
<head>
<title>My example</title>
</head>
<!-- body -->
<body>
<!-- include socket -->
<script src="http://mygame.dir.by/socket.io/socket.io.js"></script>
<script>
// create socket
var socket = io.connect("http://mygame.dir.by", {transports: ['polling']});
// get message
socket.on('user added message', function (msg) {
alert(msg);
});
</script>
</body>
</html>
По умолчанию io() использует
websocket
При хостинге на сайте,
Nginx веб сервер не поддерживает
websocket
Решение
Вариант1
в nginx config файле разрешить websocket:
# enable WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
читайте подробнее
разрешить websocket в nginx...
в файле
a.html использовать:
var socket = io();
Вариант2
использовать
pooling
в файле
a.html
исправить
var socket = io();
на
var socket = io.connect("http://mygame.dir.by", {transports: ['polling']});