GVKun编程网logo

Socket.IO仅在本地工作(socket指定本地端口)

15

本文将分享Socket.IO仅在本地工作的详细内容,并且还将对socket指定本地端口进行详尽解释,此外,我们还将为大家带来关于@font-face和CSS3在本地工作,但不能在主机上工作、asp.n

本文将分享Socket.IO仅在本地工作的详细内容,并且还将对socket指定本地端口进行详尽解释,此外,我们还将为大家带来关于@ font-face和CSS3在本地工作,但不能在主机上工作、asp.net – Web api界面在本地工作,但不在Azure上、AWS Chalice 路由在本地工作,但在部署时不工作、c# – System.Net.Sockets.SocketException创建websocket连接时的相关知识,希望对你有所帮助。

本文目录一览:

Socket.IO仅在本地工作(socket指定本地端口)

Socket.IO仅在本地工作(socket指定本地端口)

我有这个Node.JS 服务器

var app = require(''express'')();var server = app.listen(80);var io = require(''socket.io'').listen(server);var posx = 10;var posy = 10;app.get(''/'', function (req, res) {    res.sendfile( __dirname + ''/index.html'' );});io.sockets.on(''connection'', function (socket) {    socket.emit(''start'', {        x: posx,        y: posy    });    socket.on(''newpos'', function (data) {        posx = data["x"];        posy = data["y"];        socket.broadcast.emit(''move'', { x: posx, y: posy });    });});

客户端代码:

            var socket = io.connect(''http://localhost'');            socket.on(''start'', function (data) {                $("#pointer").animate({                    ''top'': data["y"],                    ''left'': data["x"]                }, 0);            });            socket.on(''move'', function (data) {                $("#pointer").animate({                    ''top'': data["y"],                    ''left'': data["x"]                }, "slow");            });            $("#pointer").draggable({                stop: function(event, ui) {                    var pos = $("#pointer").position();                    socket.emit(''newpos'', {                        ''x'': pos.left,                        ''y'': pos.top                    });                }            });

问题在于它似乎仅在本地工作。在ubuntu chrome上,我得到:

XMLHttpRequest cannot load http://localhost/socket.io/1/?t=1344711676473. Origin http://192.168.1.130 is not allowed by Access-Control-Allow-Origin.

在Mac上,同一文件出现GET错误…

对可能是什么问题有任何想法吗?

答案1

小编典典

网站的域名与托管位置无关,而与您用来访问它的URL有关。

即使“ 192.168.1.130”和“ localhost”解析到同一服务器,它们也被视为不同的域。

结果,因为您具有客户端代码:

var socket = io.connect(''http://localhost'');

您正在连接到
localhost。如果客户端代码是由本地主机提供的,则很好,但是如果要从另一个域(例如192.168.1.130)加载客户端,则会遇到问题。从浏览器和服务器的角度来看,您很容易成为尝试访问该服务的完全陌生人。

要解决此问题,请将客户端套接字创建更改为:

var socket = io.connect(''192.168.1.130'');

您应该已经解决了问题。

实际上,您应该完全删除该参数并尝试运行:

var socket = io.connect();

这样,它将默认为您所基于的任何域,并且将在localhost,IP以及最终使用的域名上都可以使用。

@ font-face和CSS3在本地工作,但不能在主机上工作

@ font-face和CSS3在本地工作,但不能在主机上工作

我对您来说有些奇怪(可以这么说).我为我的站点设计了一个“即将到来”页面,该页面在本地(在WAMP设置下)运行无瑕-在功能强大的浏览器(例如Chrome和Safari)中,该页面看起来不错,并具有不错的CSS3过渡效果悬停时.在其他浏览器中,该页面在外观上(实际上)看起来是相同的,并且悬停效果仍然有效,只是没有过渡.

上传到我的主机后,该站点仍然看起来不错,并且可以在Chrome和Safari中正常工作,但是由于某些原因,在Firefox中,@ font-face声明似乎无效,并且在IE中的布局略有不同.

我很困惑!这些文件在我的托管服务器上与本地本地文件完全相同.

网址是http://iamfriendly.com/

CSS文件在以下位置可见:

http://iamfriendly.com/wp-content/themes/iamfriendly_comingsoon/css/screen.css

http://iamfriendly.com/wp-content/themes/iamfriendly_comingsoon/css/typography.css

任何建议将不胜感激!

理查德

最佳答案
在多个域complicates things上具有files.

asp.net – Web api界面在本地工作,但不在Azure上

asp.net – Web api界面在本地工作,但不在Azure上

我的情况与 this question非常相似,但由于他没有得到答案,我以为我会投入更多的投入。

一切都在本地工作(在VS嵌入式服务器上)。当我部署到Azure时,我收到一个404错误,伴随着“没有找到与控制器名称匹配的类型”。

然而,当我加载routedebugger模块时,即使在Azure上,映射似乎也是可以的。

我可以做什么来调试这个问题?

谢谢,

亚历克斯

编辑:我的路由是这样创建的:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional }
            };
            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "ActionApi",routeTemplate: "api/{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional }
            );

编辑2:这里我的控制器类

public class EmployeeController : ApiController
{
    // GET api/<controller>
    public IEnumerable<Employee> Get()
    {
        using (var context = new nws())
        {
            return context.Employees;
        }
    }

    // GET api/<controller>/5
    public Employee Get(int id)
    {
        using (var context = new nws())
        {
            return context.Employees.FirstOrDefault(e => e.ID == id);
        }
    }

    // GET api/<controller>/getbyatid/5
    public Employee GetByAtId(string id)
    {
        using (var context = new nws())
        {
            return context.Employees.FirstOrDefault(e => e.AtUserID == id);
        }
    }

    // POST api/<controller>
    public void Post([FromBody]string value)
    {
    }

    // PUT api/<controller>/5
    public void Put(int id,[FromBody]string value)
    {
    }

    // DELETE api/<controller>/5
    public void Delete(int id)
    {
    }

    // GET api/<controller>/timebank/5
    public int? GetTimeBank(string id)
    {
        using (var context = new nws())
        {
            var employee = context.Employees.FirstOrDefault(e => e.AtUserID == id);
            if (employee != null)
                return employee.GetTimeBank();
            return null;
        }
    }
}

解决方法

切换路线的顺序,然后重试。
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
            name: "ActionApi",defaults: new { id = RouteParameter.Optional }
        );
        GlobalConfiguration.Configuration.Routes.MapHttpRoute(
            name: "DefaultApi",defaults: new { id = RouteParameter.Optional }
        };

AWS Chalice 路由在本地工作,但在部署时不工作

AWS Chalice 路由在本地工作,但在部署时不工作

如何解决AWS Chalice 路由在本地工作,但在部署时不工作?

我是 AWS Chalice 的新手,在部署过程中遇到了障碍——基本上,当我运行 chalice local 时一切正常,我可以去我定义的路线,它会返回相关的 JSON 数据。但是,一旦部署并尝试访问相同的路由,我就会收到 HTTP 502 Bad Gateway 错误:

{
    "message": "Internal server error"
}

我在设置 AWS IAM 角色时是否遗漏了什么?或者,更一般地说,除了在我的系统上的 .aws 目录中使用访问密钥和机密设置配置文件之外,AWS 是否有某种级别的配置?以下是出现错误时我正在运行的基本样板代码:

from chalice import Chalice
import json,datetime,os
from chalicelib import config

app = Chalice(app_name=''Trading-bot'')
app.debug = True


@app.route(''/quote'')
def quote():
    return {"hello": "world"} 

如果我能提供更多细节,请告诉我;总的来说,我还是 Chalice 和 AWS 的新手,所以我可能需要在我的个人资料中更新一些简单的设置。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

c# – System.Net.Sockets.SocketException创建websocket连接时

c# – System.Net.Sockets.SocketException创建websocket连接时

我是websocket的新手.我在.net 4.5框架中创建了一个控制台应用程序,并使用库“WebSocketSharp”创建了一个示例websocket客户端.我有以下代码

using System;
using WebSocketSharp;


namespace WebsocketTest
{
    class Program
    {
        public static void Main(string[] args)
        {
            try
            { 
            using (var ws = new WebSocketSharp.WebSocket("ws://192.168.18.186:7884"))
            {
               Console.WriteLine("started");
                ws.Connect();
                ws.Send("START");
                Console.ReadLine();
                }
            }catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }

        }
    }
}

但是我无法创建与在另一台机器上运行的websocket服务器的连接.我收到这样的错误信息

09-05-2017 16:20:41|Fatal|WebSocket.connect:0|System.Net.sockets.socketException (0x80004005): No connection Could be made because the target machine actively refused it 192.168.18.186:7884
                             at System.Net.sockets.TcpClient..ctor(String hostname,Int32 port)
                             at WebSocketSharp.WebSocket.setClientStream()
                             at WebSocketSharp.WebSocket.doHandshake()
                             at WebSocketSharp.WebSocket.connect()

与我的代码有关的问题是什么?有什么好的websocket库可用吗?

解决方法

查找代码是否存在问题的最简单方法是使用任何支持Web套接字的浏览器尝试连接到端点,并查看会发生什么.如果不确定,你也可以只使用telnet – 因为web-socket开始是一个文本协议(http 1.1标题)而你没有使用SSL,你应该只能打开一个连接并发送一些虚拟标题.如果telnet无法连接:您的代码将无法连接.

如果telnet可以连接,则客户端lib可能存在问题.实际上有一个内置于.NET中的Web套接字客户端,您应该可以使用它(ClientWebSocket)

今天关于Socket.IO仅在本地工作socket指定本地端口的讲解已经结束,谢谢您的阅读,如果想了解更多关于@ font-face和CSS3在本地工作,但不能在主机上工作、asp.net – Web api界面在本地工作,但不在Azure上、AWS Chalice 路由在本地工作,但在部署时不工作、c# – System.Net.Sockets.SocketException创建websocket连接时的相关知识,请在本站搜索。

本文标签: